Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    ho provato a fare così

    ho racchiuso tutto il main con il do{

    codice:
    printf("vuole fare qualche altra operazione?\n");         
     printf("1-si\n 2-no\n");          
    scanf("%d",&x);         
     if (x==1)         
     system("cls");         
     if(x==2)          
    printf("ARRIVEDERCI\n");        
     }while(x==1 && x==2);

    però non mi stampa la schermata iniziale se premo 1
    come devo fare? vi devo mettere tutto il codice del programma così mi aiutate un po?

  2. #12
    La tua idea va bene, c'è un piccolo errore logico:

    codice:
    printf("vuole fare qualche altra operazione?\n");         
    printf("1-si\n 2-no\n");          
    scanf("%d",&x);         
    if (x==1)         
         system("cls");         
    if(x==2)          
         printf("ARRIVEDERCI\n");        
     }while(x==1 && x==2);
    La condizione del while non è mai rispettata, perchè ovviamente x non può essere uguale contemporanemante sia ad 1 che a 2!

    Devi modificare così:

    codice:
    printf("vuole fare qualche altra operazione?\n");         
    printf("1-si\n 2-no\n");          
    scanf("%d",&x);         
    if (x==1)         
         system("cls");   
    else
    printf ("ARRIVEDERCI\n");
    } while (x == 1);
    Così dovrebbe funzionare tutto
    Unica pecca è che, se l'utente inserisce ad esempio 3, il programma termina, in quanto il controllo così come te l'ho scritto distingue tra 1 e "valore diverso da 1"... Chiaramante si potrebbe perfezionare migliorando questa pecca, ma forse per le tue esigenze non è necessario!
    Dimmi se funziona!
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  3. #13
    Originariamente inviato da Laikius91

    Così dovrebbe funzionare tutto
    Unica pecca è che, se l'utente inserisce ad esempio 3, il programma termina, in quanto il controllo così come te l'ho scritto distingue tra 1 e "valore diverso da 1"... Chiaramante si potrebbe perfezionare migliorando questa pecca, ma forse per le tue esigenze non è necessario!
    Dimmi se funziona!
    Dire

    while(x!=2)

    non sarebbe meglio? XD

  4. #14
    Originariamente inviato da _Alfabetagamma_
    Dire

    while(x!=2)

    non sarebbe meglio? XD

    Bè a livello logico è un pochino più pertinente la mia, che significa "finchè l'utente inserisce 1 (il valore collegato a Si) prosegui con il programma".... La tua significa "finche l'utente inserisce qualsiasi numero diverso da 2 prosegui con il programma": anche se poi l'effetto è lo stesso....
    La cosa più corretta sarebbe mettere un piccolo ciclo dentro il ciclo grande, tipo:

    codice:
    int ok;
    
    do
    {
    
    /* qui tutte le istruzioni relative al programma */
    
           do
           {
                    printf ("\nInserire 1 per eseguire altre operazioni, 2 per terminare.");
                    scanf ("%d", &x);
                    if (x == 1 || x == 2) 
                            ok = 1;
                    else
                   {
                            ok = 0;
                            printf ("\nScelta non consentita.");
                    }
            }
            while (!ok);
    
            if (x==1)         
                    system("cls");   
            else
                    printf ("ARRIVEDERCI\n");
    } 
    while (x == 1);

    Stavolta ci siamo alla perfezione!
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  5. #15
    codice:
    while(x!=2)
    {
    printf("fai la tua scelta");
    scanf("%i", &x);
    
    if(x==1) eseguo;
    else if (x==2) esco;
    else printf("attenzione la scelta effettuata non è presente (o qualcosa del genere"));
    }
    Così quando avremo più di una sola scelta da compiere ma magari 10, potremo tenere l'uscita con 2, o cambiare solo due numeri negli if.

    (ovviamente è anche più carino usare lo switch col default, però anche degli if vanno bene).

  6. #16
    Originariamente inviato da _Alfabetagamma_
    codice:
    while(x!=2)
    {
    printf("fai la tua scelta");
    scanf("%i", &x);
    
    if(x==1) eseguo;
    else if (x==2) esco;
    else printf("attenzione la scelta effettuata non è presente (o qualcosa del genere"));
    }
    Così quando avremo più di una sola scelta da compiere ma magari 10, potremo tenere l'uscita con 2, o cambiare solo due numeri negli if.

    (ovviamente è anche più carino usare lo switch col default, però anche degli if vanno bene).
    Si funziona, ma non è esattamente la richiesta di the_game... Il programma doveva stampare a video un menu, far scegliere all'utente un'opzione ed eseguire tot cose; poi, chiedere se proseguire o no e in tal caso vuotare la schermata e ristampare il menù iniziale
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  7. #17
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    Secondo me quando si vuole fare un "menù" come quello che chiede l'utente la soluzione migliore sarebbe usare uno switch-case.

  8. #18
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    ciao ragazzi,scusate la mia lunga assenza,grazie Laikius91....e anche gli altri!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.