-El_nOOb- (Normal User)
Newbie
Messaggi: 3
Iscritto: 30/03/2007
|
Hola gente...sn nuovo di queste parti ( non so se si nota dal numero mex). Vi spiego subito il mio problema...allora ho creato questo programma (se così si può chiamare), sottolineo che sn alle prime armi...quindi parlate con parole povere thx XD, che genera un numero casuale, compreso tra 1 e 10. e quando rispondi dovrebbe dirti se il numero inserito è più grande o più piccolo di quello generato...tanto x aiutarti, ora il problema sta che appena inserisci il numero...e ti da l'indacazione...il programma esce appena inserisci un altro imput...perkèèèèèè
Codice sorgente - presumibilmente C++ |
#include <iostream.h> #include<time.h> using namespace std; int main() { int A,numero; srand((unsigned)time(NULL)); A = rand() % 11+1; cout<<"Inserisci il numero che secondo te e' stato generato: "; cin>>numero; if (numero==A) { cout<<"complimenti hai indovinato!"; system ("pause"); } if (numero>A); { cout<<"Il numero inserito e' maggiore da quello generato...prova a diminuirlo!: "; cin>>numero; } if (numero<A){ cout<<"Il numero inserito e' minore da quello generato...prova ad aumentarlo!: " cin>>numero; } }
|
thx x tutti quelli che mi risponderanno
|
|
Black Shadow (Founder Member)
Expert
Messaggi: 323
Iscritto: 30/03/2006
|
Perché tu hai semplicemente inserito system("Pause"), che blocca l'esecuzione fino alla pressione di un carattere dalla tastiera.
Per fare qualcosa che "ricomincia", quindi ti chiede il numero finché non indovini si può creare una variabile bool (da usare come flag di trovato/non trovato) e usare un while che finché questa variabile è impostata su false fa continuare il ciclo, chiedendoti di nuovo di inserire il numero, quindi:
Codice sorgente - presumibilmente C++ |
#include <iostream.h> #include<time.h> using namespace std; int main() { int A,numero; bool found = false; //Flag - false = non trovato srand((unsigned)time(NULL)); A = rand() % 11+1; while (!found) { //finché non è stato trovato cout<<"\n\nInserisci il numero che secondo te e' stato generato: "; cin>>numero; if (numero==A) { cout<<"complimenti hai indovinato!"; } if (numero>A); { cout<<"Il numero inserito e' maggiore da quello generato...prova a diminuirlo! "; } if (numero<A){ cout<<"Il numero inserito e' minore da quello generato...prova ad aumentarlo! "; } } }
|
|
|
-El_nOOb- (Normal User)
Newbie
Messaggi: 3
Iscritto: 30/03/2007
|
Grande, avevo pensato di inserire un ciclo while ma del bool, non ne sapevo neanche l'esistenza
grazie!
EDIT: anche se indovino riparte il processo O_o ho provato a rimettere system ("pause") quando indovini il numero...ma nada, anche se premi un bottone esso riparte e ti domanda di inseririe il numero...
Ultima modifica effettuata da -El_nOOb- il 30/03/2007 alle 15:56 |
|
Black Shadow (Founder Member)
Expert
Messaggi: 323
Iscritto: 30/03/2006
|
Scusa, errore mio chiaramente visibile qui:
Codice sorgente - presumibilmente C/C++ |
if (numero==A)
{
cout<<"complimenti hai indovinato!";
}
|
Una volta che il numero è esatto, infatti, la variabile found deve essere settata a true, quindi:
Codice sorgente - presumibilmente C/C++ |
if (numero==A)
{
cout<<"complimenti hai indovinato!";
found = true;
}
|
|
|
-El_nOOb- (Normal User)
Newbie
Messaggi: 3
Iscritto: 30/03/2007
|
ok, grazie ancora
Ri-EDIT: altro problema O_O se indovino il numero, il programma esce automaticamente, e subito. se metto: getchar () o system ("pause"), mi spuntano tutte e due le indacazioni quando inserisco un numero (sia che è maggiore che minore).posso risovlere sl con uno sleep....oppure c'è un altro modo??
Ultima modifica effettuata da -El_nOOb- il 30/03/2007 alle 17:49 |
|
Reese (Ex-Member)
Pro
Messaggi: 179
Iscritto: 09/08/2006
|
Provato col system("pause") alla fine?
|
|