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++ - numero magico
Forum - C/C++ - numero magico - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 18:04
Venerdì, 16/10/2009
Testo quotato

Postato originariamente da lorenzo:

comunque questo è C non C++...



In effetti... :rotfl:

PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 18:09
Venerdì, 16/10/2009
Ho dato una sistematina al tuo codice, come l'avevi scritto era un pò brutto...

Cmq cosi è funzionante...

Codice sorgente - presumibilmente C++

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <time.h>
  4. main()
  5. {
  6.       int opzione,magic,guess,t;
  7.       srand(time(NULL));
  8.       magic=rand()%100;
  9.       do
  10.         {
  11.                  system("cls");                    
  12.          printf("IL NUMERO MAGICO\nIndovina il numero che sceglie il codice");
  13.          printf("\n1. Scegli un nuovo numero");
  14.          printf("\n2. GIOCA");
  15.          printf("\n3. Esci");
  16.          printf("\nNUMERO: ");
  17.                  scanf("%d",&opzione);
  18.                  system("cls");
  19.          switch (opzione) {
  20.                case 1:
  21.                                         magic = rand()%100;
  22.                                         break;
  23.                case 2:
  24.                                         for(t = 0; t < 10; ++t) {
  25.                                                 printf("\nIndovina il numero magico!    = ");
  26.                                                 scanf("%d",&guess);
  27.                                                 if (guess==magic) {
  28.                                                         printf("\nGIUSTO!!!");
  29.                                                         opzione = 3;
  30.                                                 } else if (guess<magic) {
  31.                                                         printf("\nTROPPO PICCOLO");
  32.                                                 }  else if(guess>magic) {
  33.                                                         printf("\nTROPPO GRANDE");
  34.                                                 }                                                                              
  35.                                         }
  36.                                         printf("\nHAI FINITO I TENTATIVI!");
  37.                                         break;
  38.                 case 3:
  39.                                         printf("ARRIVEDERCI");
  40.                                         break;
  41.                        
  42.         }
  43.                 printf("\n\n");
  44.                 system("pause");            
  45.       }while (opzione!=3);
  46.       return 0;
  47. }


PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 18:11
Venerdì, 16/10/2009
Testo quotato

Postato originariamente da Matthew:

Allora il problema e' che nel codice dei tuoi dieci tentativi non viene riletto nessun nuovo numero. In pratica l'utente inserisce un nuovo numero, e il programma controlla dieci volte se quel numero e' corretto. Chiaramente questo non ha senso.
Il case 2 va riscritto cosi'
Codice sorgente - presumibilmente C++

  1. case 2:  
  2. {
  3.      for (t=1;t<=10;t++)
  4.      {
  5.          printf("\nIndovina il numero magico!    = ")
  6.          scanf("%d",&guess);
  7.          if (guess==magic)
  8.          {
  9.             printf("\nGIUSTO!!!");
  10.             system("PAUSE");
  11.             return 0;
  12.          }
  13.          else if (guess<magic)
  14.            printf("\nTROPPO PICCOLO");
  15.          else printf("\nTROPPO GRANDE");
  16.       }
  17.       printf("HAI FINITO I TENTATIVI!");
  18. }
  19. break;



Prova cosi', dovrebbe andare...



anche se il case 2 è scritto male il problema sta nel case 1 perchè lui esegue questa istruzione:

Codice sorgente - presumibilmente C/C++

  1. case 1: rand()%100;
  2. break;



cioè genera un numero casuale, ma non lo assegna a magic, quindi resta sempre fisso come generato all'inizio se non scrive:

Codice sorgente - presumibilmente C/C++

  1. case 1: magic=rand()%100;
  2. break;


Ultima modifica effettuata da oretovalley il 16/10/2009 alle 18:12
PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 18:16
Venerdì, 16/10/2009
Testo quotato

Postato originariamente da oretovalley:

Codice sorgente - presumibilmente C/C++

  1. case 1: rand()%100;
  2. break;



cioè genera un numero casuale, ma non lo assegna a magic, quindi resta sempre fisso come generato all'inizio se non scrive:

Codice sorgente - presumibilmente C/C++

  1. case 1: magic=rand()%100;
  2. break;




Ahaha gia', non lo avevo notato! Scusate!

PM Quote
Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 9:49
Sabato, 17/10/2009
Ho cambiato il codice e finalmente funziona!
Grazie a tutti peri consigli!
Però scusate, non ho capito come postare il codice nel tag code. Cosa devo fare, dove sta questo tag code?:) Abbiate pazienza, ma è la mia prima volta nel forum, quindi se me lo spiegaste ora poi non devo più chiderlo la prossima volta che avrò un problema!:)

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 10:02
Sabato, 17/10/2009
Devi scrivere code racchiuso tra parentesi quadre prima del codice e code preceduto da "/" e racchiuso tra quadre alla fine.

Ultima modifica effettuata da Matthew il 17/10/2009 alle 10:04
PM Quote
Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 10:19
Sabato, 17/10/2009
GRAZIE 1000!:k:

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo