Oppure

Loading
16/10/09 16:03
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'
case 2:  
{
     for (t=1;t<=10;t++)
     {
         printf("\nIndovina il numero magico!    = ")
         scanf("%d",&guess); 
         if (guess==magic) 
         { 
            printf("\nGIUSTO!!!"); 
            system("PAUSE");
            return 0; 
         } 
         else if (guess<magic) 
           printf("\nTROPPO PICCOLO"); 
         else printf("\nTROPPO GRANDE"); 
      }
      printf("HAI FINITO I TENTATIVI!");
} 
break; 


Prova cosi', dovrebbe andare...
Ultima modifica effettuata da Matthew 16/10/09 16:03
aaa
16/10/09 16:04
Matthew
Postato originariamente da lorenzo:

comunque questo è C non C++...


In effetti... :rotfl:
aaa
16/10/09 16:09
oretovalley
Ho dato una sistematina al tuo codice, come l'avevi scritto era un pò brutto...

Cmq cosi è funzionante...

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{
      int opzione,magic,guess,t;
      srand(time(NULL));
      magic=rand()%100;
      do
        {
		 system("cls");			   
         printf("IL NUMERO MAGICO\nIndovina il numero che sceglie il codice");
         printf("\n1. Scegli un nuovo numero");
         printf("\n2. GIOCA");
         printf("\n3. Esci");
         printf("\nNUMERO: ");
		 scanf("%d",&opzione);
		 system("cls");
         switch (opzione) {
               case 1: 
			   		magic = rand()%100;
					break;
               case 2: 
					for(t = 0; t < 10; ++t) {
						printf("\nIndovina il numero magico!    = ");
						scanf("%d",&guess);
						if (guess==magic) {
							printf("\nGIUSTO!!!");
							opzione = 3;
						} else if (guess<magic) {
							printf("\nTROPPO PICCOLO");
						}  else if(guess>magic) {
							printf("\nTROPPO GRANDE");
						}										
					}
					printf("\nHAI FINITO I TENTATIVI!");
					break;
                case 3: 
					printf("ARRIVEDERCI");
					break;
                       
        }
		printf("\n\n");
		system("pause");            
      }while (opzione!=3);
      return 0;
}
aaa
16/10/09 16:11
oretovalley
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'
case 2:  
{
     for (t=1;t<=10;t++)
     {
         printf("\nIndovina il numero magico!    = ")
         scanf("%d",&guess); 
         if (guess==magic) 
         { 
            printf("\nGIUSTO!!!"); 
            system("PAUSE");
            return 0; 
         } 
         else if (guess<magic) 
           printf("\nTROPPO PICCOLO"); 
         else printf("\nTROPPO GRANDE"); 
      }
      printf("HAI FINITO I TENTATIVI!");
} 
break; 


Prova cosi', dovrebbe andare...


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

case 1: rand()%100;
break;


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

case 1: magic=rand()%100;
break; 
Ultima modifica effettuata da oretovalley 16/10/09 16:12
aaa
16/10/09 16:16
Matthew
Postato originariamente da oretovalley:

case 1: rand()%100;
break;


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

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


Ahaha gia', non lo avevo notato! Scusate!
aaa
17/10/09 7:49
zaire90
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!:)
aaa
17/10/09 8:02
Matthew
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 17/10/09 8:04
aaa
17/10/09 8:19
zaire90
GRAZIE 1000!:k:
aaa