Semplice calcolatrice che usi il while o do---while. Non riesco...

di il
1 risposte

Semplice calcolatrice che usi il while o do---while. Non riesco...

Salve, da autodidatta sto cercando di scriver eun programma che simuli una semplice calcolatrice con le 4 operazioni.

Ho scritto il codice ma non riesco a fargli ripresentare la richiesta dopo aver fatto la prima corretta scelta e non so come uscire invece se lui digita e o E per uscire. Fatta ad es la addizione, lui deve richiedere se voglio continuare e ripresentare il menu di scleta…

Mi sto letteralmente arravogliando…siate magnanimi, sono un brocco convinto…ma testardo:-)

#include <stdio.h>

#include <locale.h>

#include <stdlib.h>

int main()

{

    int operando1, operando2, risultato;

    char scelta, opzione_chiusura1, opzione_chiusura2;

    setlocale(LC_CTYPE, "italian");

    printf("Questo programma esegue l'operazione richiesta dall'utente in base alla lettera inserita\n\n");

    printf("a-A. Addizione\n");

    printf("b-B. Sottrazione\n");

    printf("c-C. Moltiplicazione\n");

    printf("d-D. Divisione\n");

    printf("Digitando e-E si uscirà dal programma.\n");

    printf("\nDigita la lettera dell'operazione da eseguire: ");

    scanf("%c", &scelta);

    while(scelta != 'e' || scelta != 'E')

    {

        if( scelta == 'a' || scelta == 'A')

        {

           printf("\nInserisci il valore del primo numero: ");

            scanf("%d", &operando1);

           printf("\nInserisci il valore dele secondo numero: ");

            scanf("%d", &operando2);

            risultato = operando1 + operando2 ;

            printf("\nIl risultato dell'operazione selezionata è %d", risultato);

        }

        else

        {

            if( scelta == 'b' || scelta == 'B')

            {

               printf("\nInserisci il valore del primo numero: ");

               scanf("%d", &operando1);

               printf("\nInserisci il valore dele secondo numero: ");

               scanf("%d", &operando2);

                risultato = operando1 - operando2 ;

                printf("\nIl risultato dell'operazione selezionata è %d", risultato);

            }

            else

            {

                if( scelta == 'c' || scelta == 'C')

                {

                   printf("\nInserisci il valore del primo numero: ");

                   scanf("%d", &operando1);

                    printf("\nInserisci il valore dele secondo numero: ");

                   scanf("%d", &operando2);

                    risultato = operando1 * operando2 ;

                   printf("\nIl risultato dell'operazione selezionata è %d", risultato);

                }

                else

                {

                    if( scelta == 'd' || scelta == 'D' )

                    {

                       printf("\nInserisci il valore del primo numero: ");

                       scanf("%d", &operando1);

                       printf("\nInserisci il valore dele secondo numero: ");

                       scanf("%d", &operando2);

                        risultato = operando1 / operando2 ;

                       printf("\nIl risultato dell'operazione selezionata è %d", risultato);

                    }

                    else

                       printf("\nLa lettera appena digitata non equivale a nessuna operazione.\n\n");

                        break;

                }

            }

        }

    }

    while (scelta == 'e' || scelta == 'E')

    {

        printf("Il programma verrà chiuso.\n");

        break;

    }

    printf("\n\n");

    system ("pause");

    return 0;

}

1 Risposte

  • Re: Semplice calcolatrice che usi il while o do---while. Non riesco...

    Ciao, prima cosa prossima volta metti il codice nell' apposito blocco di codice.

    Parlando del codice, ho risolto sostituendo il while con un do-while e dentro ad esso ho incluso la parte iniziale dove chiedi di inserire la scelta e se l'utente inserisce e-E il programma finisce.

    Qua sotto ti riporto il codice, ho apportato alcune modifiche come il controllo dell'operando due nella divisione che deve essere diverso da 0 e ti consiglio anche di cabiare i valore da int a float cosí da avere risultati piú precisi (tipo la divisione).

    Se hai domande chiedi pure.

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
    
        int operando1, operando2, risultato;
    
        char scelta;
    
     do{
        	
        printf("Questo programma esegue l'operazione richiesta dall'utente in base alla lettera inserita\n\n");
    
        printf("a-A. Addizione\n");
    
        printf("b-B. Sottrazione\n");
    
        printf("c-C. Moltiplicazione\n");
    
        printf("d-D. Divisione\n");
    
        printf("Digitando e-E si uscirà dal programma.\n");
    
        printf("\nDigita la lettera dell'operazione da eseguire: ");
    
        scanf("%c", &scelta);
        
    
        if( scelta == 'a' || scelta == 'A'){
    
            printf("\nInserisci il valore del primo numero: ");
    
            scanf("%d", &operando1);
    
            printf("\nInserisci il valore dele secondo numero: ");
    
            scanf("%d", &operando2);
    
            risultato = operando1 + operando2 ;
    
            printf("\nIl risultato dell'operazione selezionata %c %d", 138, risultato);
                
            sleep(3);
    
        }else if( scelta == 'b' || scelta == 'B'){
    
             printf("\nInserisci il valore del primo numero: ");
    
             scanf("%d", &operando1);
    
             printf("\nInserisci il valore dele secondo numero: ");
    
             scanf("%d", &operando2);
    
             risultato = operando1 - operando2 ;
    
             printf("\nIl risultato dell'operazione selezionata %c %d", 138, risultato);
                    
             sleep(3);
    
          }else if( scelta == 'c' || scelta == 'C'){
    
             printf("\nInserisci il valore del primo numero: ");
    
             scanf("%d", &operando1);
    
             printf("\nInserisci il valore dele secondo numero: ");
    
             scanf("%d", &operando2);
    
             risultato = operando1 * operando2 ;
    
             printf("\nIl risultato dell'operazione selezionata %c %d", 138, risultato);
                       
             sleep(3);
    
           }else if( scelta == 'd' || scelta == 'D' ){
    
    
             printf("\nInserisci il valore del primo numero: ");
    
             scanf("%d", &operando1);
    
             printf("\nInserisci il valore dele secondo numero: ");
                           
                  do{
                            	
    				scanf("%d", &operando2);
    						
    			  }while(operando2 == 0);
    
             risultato = operando1 / operando2 ;
    
             printf("\nIl risultato dell'operazione selezionata %c %d", 138, risultato);
                           
             sleep(3);
                           
         }else if(scelta == 'e' || scelta == 'E'){
        	
        	return 0;
        	
    	 }
        
        system("cls");
    
    }while(scelta != 'e' || scelta != 'E');
    
        return 0;
    }
Devi accedere o registrarti per scrivere nel forum
1 risposte