PDA

Visualizza la versione completa : [c++] Mi aiutate a trovare l'errore? grazie


freetom
01-11-2012, 12:34
#include <iostream>
#include <vector>
#include <sstream>
#include <set>
#include <fstream>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <windows.h>
#include <sstream>
#include <iomanip>
#include <windows.h>

using namespace std;

template <class T>
void init(vector<T>& v,unsigned int n, ...)
{
T temp;
va_list vl;
va_start(vl,n);
for(unsigned int j=0;j<n;j++)
{
temp=va_arg(vl,T);
v.push_back(temp);
}
va_end(vl);
}



string intToString(int value) {
stringstream ss;
ss << value;
return ss.str();
}

string Tostring(int number)
{
std::stringstream out;
out << number;
return out.str();
}



int main (int argc, char *argv[])
{

vector<int>vettore;

init(vettore,30,3,4,7,10,16,22,23,30,35,36,38,46,4 9,55,57,58,60,61,66,67,73,75,76,77,78,80,82,87,89, 90);

string numeroscelto;
string s;
string s2;
set<int>::iterator it;
set<int>::iterator it2;

int numero2;

string combinazioneintera;

vector <string> vettorecombinazione;
vector<string>insiemecombinazioni;
vector<string>insiemecombinazioni2;

set<int>combinazione;
set<int>combinazione2;

int primo,secondo,terzo,quarto,quinto,sesto,settimo,ot tavo,nono,decimo,undicesimo,dodicesimo;
int tredicesimo,quattordicesimo,quindicesimo,sedicesim o,diciasettesimo,diciottesimo,diciannovesimo;
int ventesimo,ventunesimo,ventiduesimo,ventitreesimo,v entiquattresimo,venticinquesimo,ventiseiesimo;
int ventisettesimo,ventottesimo,ventinovesimo,trentesi mo;
int n31,n32,n33,n34,n35,n36,n37,n38,n39,n40,n41,n42,n4 3,n44,n45,n46,n47,n48,n49,n50;
int n51,n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n6 3,n64,n65,n66,n67,n68,n69,n70;
int n71,n72,n73,n74,n75,n76,n77,n78,n79,n80;


int estratti=1, numero,numeri,combinazioni,inizio,fine,finale,nume ro3,k,z,i;
int comb=1;

int numeri1,numeri2,numeri3,numeri4,numeri5,numeri6,nu meri7,numeri8,numeri9,numeri10;

bool continua=true;


system("color 0a");

cout << "\n"<<endl;
cout << "Quanti numeri x tip1?: ";
cin >> numeri1;
cout << "Quanti numeri x tip2?: ";
cin >> numeri2;
cout << "\n"<<endl;
cout << "Quante combinazioni x ogni tip?: ";
cin >> combinazioni;
cout << "\nNumero iniziale?: ";
cin >> inizio;
cout << "\nNumero finale?: ";
cin >> fine;


finale=fine-(inizio+1);
srand(time(0));


//PROVA GENERAZIONE PER 2 TIPOLOGIE (TIP) DI COMBINAZIONI ALLA VOLTA

//disabilitando un TIP alla volta l'altro funziona insieme.. NO :(

//TIP1


if (numeri1!=0) {
while(continua==true){
if(insiemecombinazioni.size() == combinazioni){
continua=false;
} else {
s="";
combinazione.clear();




while (combinazione.size()<numeri1) {
numero = rand() % (finale+2) + inizio;
cout << combinazione.size();
//versione + pratica...
if(std::find(vettore.begin(), vettore.end(), numero)==vettore.end())
{
//non fare nulla...
}
//altrimenti...
else {
//inserisci in combinazione
combinazione.insert(numero);
}
cout << combinazione.size();
}
}
for (it=combinazione.begin(); it!=combinazione.end(); it++) {
s += intToString(*it)+",";
}
int ultimocarattere;
ultimocarattere=s.size();
insiemecombinazioni.push_back(s);
}



//TIP2


if (numeri2!=0) {
while(continua==true){
if(insiemecombinazioni2.size() == combinazioni){
continua=false;
} else {
s2="";
combinazione2.clear();

while (combinazione2.size()<numeri2) {
numero2 = rand() % (finale+2) + inizio;
cout << combinazione2.size();
//versione + pratica...
if(std::find(vettore.begin(), vettore.end(), numero2)==vettore.end())
{
//non fare nulla...
}
//altrimenti...
else {
//inserisci in combinazione
combinazione2.insert(numero2);
}
cout << combinazione2.size();
}
}
for (it2=combinazione2.begin(); it2!=combinazione2.end(); it2++) {
s2 += intToString(*it2)+",";
}
int ultimocarattere2;
ultimocarattere2=s2.size();
insiemecombinazioni2.push_back(s2);

//----------------------------------------------------------------------


}



insiemecombinazioni.pop_back();
ofstream fout;
fout.open("COMBINAZIONI-GRUPPO-DESIDERATO-2012-TIP1.txt", ios::app);
for (i=0; i<insiemecombinazioni.size();i++){
fout << insiemecombinazioni[i]+"\n";
cout << "Press ENTER to continue..." << endl;
}
cout << "\n\n";





insiemecombinazioni2.pop_back();
ofstream fout2;
fout2.open("COMBINAZIONI-GRUPPO-DESIDERATO-2012-TIP2.txt", ios::app);
for (i=0; i<insiemecombinazioni2.size();i++){
fout2 << insiemecombinazioni2[i]+"\n";
cout << "Press ENTER to continue..." << endl;
}



cout << "\n\n";

}
}
}



Disabilitando un TIP alla volta commentandolo l'altro TIP (sono 2) funziona... attivandoli insieme (decommentando l'altro) il programma crasha...

Ho cercato e ricercato l'errore senza trovarlo... :dh˛: :dh˛: :dh˛: :dh˛:

Grazie a chi mi aiuta a trovarlo...

:ciauz:

Loading