PDA

Visualizza la versione completa : [C++] Inserire in vector valori tutti diversi


freetom
15-08-2009, 21:12
Ho questo problema.
dovrei inserire in un vector combinazione tutti numeri diversi...

Per adesso con questo codice non ci sono riuscito:




#include <iostream>
#include <vector>

using namespace std;

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

vector<int>combinazione;
vector<string> combinazioni;
int inizio=1;
int finale=90;
int numero;
int i;


//INSERISCO IL PRIMO ELEMENTO SICURAMENTE NON DOPPIONE...

numero = rand() % finale + inizio;
combinazione.push_back(numero);

cout << "PRIMO ELEMENTO INSERITO: ";
cout << numero;

for (i=0;i<10;i++) {

//GENERO PER LE 10 VOLTE RICHIESTE UN NUMERO CASUALE NEL RANGE VOLUTO

numero = rand() % finale + inizio;

for (i=0;i<combinazione.size();i++) {

//CONTROLLO SE IL NUMERO GENERATO E' GIA' PRESENTE NEL VECTOR...

if (combinazione[i]==numero) {

//SE C'E' GIA' NON LO INSERISCO...

cout << "GIA' PRESENTE!";

}
else
{

//SE NON E' PRESENTE LO INSERISCO NEL VECTOR..

cout << "OK INSERIAMOLO!";
combinazione.push_back(numero);
}

}

//STAMPO A VIDEO I CONTENUTI DEL VECTOR combinazione CHE DOVREBBERO ESSERE
//TUTTI NUMERI DIVERSI MA CHE INVECE PURTROPPO NON LO SONO... :dhò:

for (i=0;i<combinazione.size();i++) {
cout << combinazione[i];
cout << "-";
}

}


cout << "Press ENTER to exit..." << endl;
cin.get();
return 0;
}




Grazie a chi mi eviterà notti insonni... per la mancata risoluzione del problema... :D

:ciauz:

MItaly
16-08-2009, 13:12
Puoi postare codice indentato correttamente, per favore? Io ti darei volentieri una mano, ma così il codice è illeggibile.

freetom
16-08-2009, 18:27
Originariamente inviato da MItaly
Puoi postare codice indentato correttamente, per favore? Io ti darei volentieri una mano, ma così il codice è illeggibile.

Intendi come in python... le parentesi graffe all'altezza... uguale?
Non ho mai ben capito nemmeno in quel linguaggio cosa si intendesse per indentato...
e credo che fortunatamente in c++ un programma funzioni anche senza indentatura corretta.. rispetto a python che invece la esige... comunque sia ci provo...

ecco:




#include <iostream>
#include <vector>

using namespace std;
int main (int argc, char *argv[])
{

vector<int>combinazione;
vector<string> combinazioni;
int inizio=1;
int finale=90;
int numero;
int i;


//INSERISCO IL PRIMO ELEMENTO SICURAMENTE NON DOPPIONE...

numero = rand() % finale + inizio;
combinazione.push_back(numero);

cout << "PRIMO ELEMENTO INSERITO: ";
cout << numero;

for (i=0;i<10;i++) {

//GENERO PER LE 10 VOLTE RICHIESTE UN NUMERO CASUALE NEL RANGE VOLUTO

numero = rand() % finale + inizio;

for (i=0;i<combinazione.size();i++) {

//CONTROLLO SE IL NUMERO GENERATO E' GIA' PRESENTE NEL VECTOR...

if (combinazione[i]==numero) {

//SE C'E' GIA' NON LO INSERISCO...

cout << "GIA' PRESENTE!";

}
else
{

//SE NON E' PRESENTE LO INSERISCO NEL VECTOR..

cout << "OK INSERIAMOLO!";
combinazione.push_back(numero);
}

}

//STAMPO A VIDEO I CONTENUTI DEL VECTOR combinazione CHE DOVREBBERO ESSERE
//TUTTI NUMERI DIVERSI MA CHE INVECE PURTROPPO NON LO SONO...

for (i=0;i<combinazione.size();i++) {
cout << combinazione[i];
cout << "-";
}

}


cout << "Press ENTER to exit..." << endl;
cin.get();
return 0;

}

mondobimbi
16-08-2009, 19:00
Originariamente inviato da freetom
Intendi come in python... le parentesi graffe all'altezza... uguale?
Non ho mai ben capito nemmeno in quel linguaggio cosa si intendesse per indentato...
e credo che fortunatamente in c++ un programma funzioni anche senza indentatura corretta.. rispetto a python che invece la esige...




...
if ( src == "" )
if ( child && (child->type () == TXMLNode::TEXT) )
script_text += string("\n") + child->value() + "\n";
else {
XMLElement script ("script");
script.setAttribute( "src", src );
script.setAttribute("type", "text/javascript");
head->appendChild ( script );
}
...


questo codice indentato male (la logica che volevo era quella indentata) mi ha procurato una mezz'ora di emicrania.

Loading