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

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 15:27
Venerdì, 16/10/2009
Salve sono nuovo nel forum e ho iniziato a studiare programmazione c++ solo da circa un mese. Voglio creare un programma che scelga un numero a caso tra 0 e 99 e che l'utente dovrà poi indovinare in un massimo di 10 tentativi. Quindi dovrò usare rad()%100, per creare il numero e poi tutte belle cosine come lo switch per dirmi se il numero che inserisco da tastiera è troppo piccolo o troppo grande, un ciclo for per i 10 tentativi ecc.
Ci sono quasi riuscito ma il programma mi gira male. Metto male qualche istruzione. Ci sarebbe qualcuno così gentile da scrivermi un esempio di un programma del genere...?
Magari qualcuno che già l'ha fatto.
GRAZIE in anticipo a chi avrà la pazienza di rispondermi:)

PM Quote
Avatar
giuseppe93 (Ex-Member)
Pro


Messaggi: 166
Iscritto: 02/08/2009

Segnala al moderatore
Postato alle 15:59
Venerdì, 16/10/2009
ti conviene postare il  tuo codice inceve di chiedere che qualcuno te lo faccia... poi non ti conviene usare un ciclo for per l'input e neanche uno switch ma una serie di if. sicuramente nelle sezione sorgenti>c++ ci sono un sacco di esempio... e poi NON FLODDARE:nono:

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:59
Venerdì, 16/10/2009
ciao! inizio subito con il darti qualche dritta sul forum.

Qui funziona così: tu posti il codice che hai prodotto, all'interno del tag Code

Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.     // In questo modo mantiene la formattazione
  4.     return 0;
  5. }



Esprimi il tuo problema, e qualcuno ti risponderà con consigli, suggerimenti e correzioni. Una delle policy fondamentali è "niente pappa pronta"! Quindi posta il tuo codice e qualcuno ti darà una mano, altrimenti non aspettarti nulla.

Ciao ;)

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

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

Postato originariamente da zaire90:

Ci sono quasi riuscito ma il programma mi gira male. Metto male qualche istruzione.



Posta questo codice che gira male ... ti si dice cosa modificare ...

PM Quote
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

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

Postato originariamente da giuseppe93:NON FLODDARE:nono:


Mi dispiace contraddirti, ma credo proprio che non ha floddato volontariamente. Molto spesso accade ciò. La non volontà è testimoniata dalla data e dall'ora molto vicine tra di loro (1 minuto circa).

Ciao
SC

:k:

PM Quote
Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 16:33
Venerdì, 16/10/2009
Allora scusate l'ignoranza ma non so cosa significhi "floddare", comunque ho dedotto che significhi postare 2 volte. In ogni caso non l'ho fatto di proposito ma ha fatto tutto da solo il computer!:)OK
Quindi devo postare il codice:

/*  QUESTO PROGRAMMA SCEGLIE A CASO UN NUMERO TRA 0 E 99 E TI PERMETTE DI
    INDOVINARLO DICENDOTI SE IL NUMERO INSERITO DA TASTIERA E'
    TROPPO PICCOLO O TROPPO GRANDE.                                    */
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{
      int opzione,magic,guess,t;
      srand(time(NULL));
      magic=rand()%100;
      do
        {
         printf("IL NUMERO MAGICO\nIndovina il numero che sceglie il codice");
         printf("\n1. Scegli un nuovo numero");
         printf("\n2. GIOCA");
         printf("\n3. Esci");
         printf("\n NUMERO    ");scanf("%d",&opzione);
         switch (opzione)
              {
               case 1: rand()%100;break;
               case 2: printf("\nIndovina il numero magico!    = ");
                       scanf("%d",&guess);
                       for (t=1;t<=10;t++)
                           {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;
               case 3: {
                        printf("ARRIVEDERCI");
                        system("PAUSE");return 0;
                       }
              }
        }    
      while (opzione!=3);
      system("PAUSE");
      return 0;
}

Come potete vedere ho scritto il ciclo for ma o non ho dato le istruzioni xk non riesco a capire come fare. Leggete un po' e consigliatemi:)

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 17:56
Venerdì, 16/10/2009
Racchiudi il codice nei tag code...
Codice sorgente - presumibilmente C++

  1. /*  QUESTO PROGRAMMA SCEGLIE A CASO UN NUMERO TRA 0 E 99 E TI PERMETTE DI
  2.     INDOVINARLO DICENDOTI SE IL NUMERO INSERITO DA TASTIERA E'
  3.     TROPPO PICCOLO O TROPPO GRANDE.                                    */
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <time.h>
  7. main()
  8. {
  9.       int opzione,magic,guess,t;
  10.       srand(time(NULL));
  11.       magic=rand()%100;
  12.       do
  13.         {
  14.          printf("IL NUMERO MAGICO\nIndovina il numero che sceglie il codice");
  15.          printf("\n1. Scegli un nuovo numero");
  16.          printf("\n2. GIOCA");
  17.          printf("\n3. Esci");
  18.          printf("\n NUMERO    ");scanf("%d",&opzione);
  19.          switch (opzione)
  20.               {
  21.                case 1: rand()%100;break;
  22.                case 2: printf("\nIndovina il numero magico!    = ");
  23.                        scanf("%d",&guess);
  24.                        for (t=1;t<=10;t++)
  25.                            {if (guess==magic)
  26.                               {
  27.                                printf("\nGIUSTO!!!");
  28.                                system("PAUSE");return 0;
  29.                               }
  30.                             else if (guess<magic) printf("\nTROPPO PICCOLO");
  31.                             else printf("\nTROPPO GRANDE");
  32.                            }
  33.                         printf("HAI FINITO I TENTATIVI!");break;
  34.                case 3: {
  35.                         printf("ARRIVEDERCI");
  36.                         system("PAUSE");return 0;
  37.                        }
  38.               }
  39.         }    
  40.       while (opzione!=3);
  41.       system("PAUSE");
  42.       return 0;
  43. }


PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 18:00
Venerdì, 16/10/2009
comunque questo è C non C++...

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 18:03
Venerdì, 16/10/2009
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...

Ultima modifica effettuata da Matthew il 16/10/2009 alle 18:03
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo