Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Numeri random
Forum - C/C++ - Numeri random

Avatar
-El_nOOb- (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 1:21
Venerdì, 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++

  1. #include <iostream.h>
  2. #include<time.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. int A,numero;
  7. srand((unsigned)time(NULL));
  8. A = rand() % 11+1;
  9.  
  10. cout<<"Inserisci il numero che secondo te e' stato generato: ";
  11. cin>>numero;
  12.  
  13. if (numero==A)
  14.  
  15.   {
  16.              
  17.               cout<<"complimenti hai indovinato!";
  18.               system ("pause");
  19. }
  20.  
  21. if (numero>A);
  22.  
  23. {
  24.        
  25.         cout<<"Il numero inserito e' maggiore da quello generato...prova a diminuirlo!: ";
  26.         cin>>numero;
  27.        
  28.         }
  29.        
  30.        if (numero<A){
  31.            
  32.             cout<<"Il numero inserito e' minore da quello generato...prova ad aumentarlo!: "
  33.             cin>>numero;
  34.            
  35.             }
  36.            
  37.             }



thx x tutti quelli che mi risponderanno :k:

PM Quote
Avatar
Black Shadow (Founder Member)
Expert


Messaggi: 323
Iscritto: 30/03/2006

Segnala al moderatore
Postato alle 14:20
Venerdì, 30/03/2007
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++

  1. #include <iostream.h>
  2. #include<time.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. int A,numero;
  7. bool found = false;  //Flag - false = non trovato
  8. srand((unsigned)time(NULL));
  9. A = rand() % 11+1;
  10.  
  11. while (!found) { //finché non è stato trovato
  12.  
  13. cout<<"\n\nInserisci il numero che secondo te e' stato generato: ";
  14. cin>>numero;
  15.  
  16. if (numero==A)
  17.  
  18. {
  19.  
  20. cout<<"complimenti hai indovinato!";
  21. }
  22.  
  23. if (numero>A);
  24.  
  25. {
  26.  
  27. cout<<"Il numero inserito e' maggiore da quello generato...prova a diminuirlo! ";
  28.  
  29. }
  30.  
  31. if (numero<A){
  32.  
  33. cout<<"Il numero inserito e' minore da quello generato...prova ad aumentarlo! ";
  34.  
  35. }
  36.  
  37. }
  38.  
  39. }



;)

PM Quote
Avatar
-El_nOOb- (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 15:48
Venerdì, 30/03/2007
Grande, avevo pensato di inserire un ciclo while :-| ma del bool, non ne sapevo neanche l'esistenza :rotfl:

grazie! :love:

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... :d

Ultima modifica effettuata da -El_nOOb- il 30/03/2007 alle 15:56
PM Quote
Avatar
Black Shadow (Founder Member)
Expert


Messaggi: 323
Iscritto: 30/03/2006

Segnala al moderatore
Postato alle 16:45
Venerdì, 30/03/2007
Scusa, errore mio chiaramente visibile qui:

Codice sorgente - presumibilmente C/C++

  1. if (numero==A)
  2. {
  3.  
  4. cout<<"complimenti hai indovinato!";
  5. }



Una volta che il numero è esatto, infatti, la variabile found deve essere settata a true, quindi:

Codice sorgente - presumibilmente C/C++

  1. if (numero==A)
  2. {
  3.  
  4. cout<<"complimenti hai indovinato!";
  5. found = true;
  6. }



;)

PM Quote
Avatar
-El_nOOb- (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 17:36
Venerdì, 30/03/2007
ok, grazie ancora :k:

Ri-EDIT: altro problema O_O :D 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?? 8-|

Ultima modifica effettuata da -El_nOOb- il 30/03/2007 alle 17:49
PM Quote
Avatar
Reese (Ex-Member)
Pro


Messaggi: 179
Iscritto: 09/08/2006

Segnala al moderatore
Postato alle 19:49
Venerdì, 30/03/2007
Provato col system("pause") alla fine?

PM Quote