Calcolatrice Base

di Antonio-Sim il
1 risposte

Buona sera ho realizzato questa calcolatrice ,che svolge le quattro operazioni base.Ho un problema poichè mediante ciclo while vorrei decidere se ripetere la scelta dell'operazione da svolgere digitando Y,oppure N per  uscire.

La funzione di uscita digitando N, viene eseguita.

Grazie per l'attenzione.

#include <stdio.h>
#include <stdlib.h>
//Creazione prototipi
void Scelta(int Selezione,int Valore1,int Valore2);
void Somma(int *Somma,int Addendo1,int Addendo2);
void Differenza(int *Minuendo,int Sottraendo);
int Moltiplicazione(int Moltiplcando,int Moltiplicatore);
void Divisione(int Dividendo,int Divisore);

void main(void)
{
  //Dichirazione delle variabili:
  int SceltaOperatore, Numero1=20,Numero2=10;
 
  //Stampo il menu  di Scelta
  printf("1)Menu Somma:\n"
         "2)Menu Differenza: \n"
         "3)Menu Prodotto: \n"
         "4)Menu Quoziente: \n");
//Esguo la scelta  mediante dello switch case di una delle operazioni
printf("Seleziona l'operazione deisderata");
scanf(" %d", &SceltaOperatore);
Scelta(SceltaOperatore,Numero1,Numero2);


         
         
}
//Creazione  Void e funzioni
void Scelta(int Selezione,int Valore1,int Valore2)
{
    int Result=0;
     char Risposta;
   do {
    
  switch (Selezione)
{
    
  case 1:
     Somma(&Result,Valore1,Valore2);
     printf("La somma vale: %d",Result);
  break;
   case 2:
     Differenza(&Valore1,Valore2);
     printf("La Differenza vale: %d",Valore1);
  break;
  case 3:
   Moltiplicazione(Valore1,Valore2);
     printf("Il Prodotto vale: %d",Valore1);
  break;
  case 4:
        Divisione(Valore1,Valore2);
      break;
   default:
     printf("Scelta Sbagliata:");
    break;
}//exit case
  printf("Vuoi Continuare? Y/N \n");
   scanf(" %c", &Risposta);
   getchar(); 


}while(Risposta!='N');  
}//exit void

void Somma(int *Somma,int Addendo1,int Addendo2)
{
    *Somma=Addendo2 + Addendo1;
}
void Differenza(int *Minuendo,int Sottraendo)
{
    *Minuendo -=Sottraendo;
}

int Moltiplicazione(int Moltiplicando,int Moltiplicatore)//Variabili dichiarate col metodo per riferimento
{ return Moltiplicando * Moltiplicatore;
}
void Divisione(int Dividendo,int Divisore)
{ printf("il Risultato e': %d con resto %d",(int)(Dividendo/Divisore),Dividendo%Divisore);
}

1 Risposte

  • Il do while è messo nel posto sbagliato.

    Eevi metterlo nel main tra la prima printf e la fine del main

    Anche la richiesta se vuoi continuare va nel main

Devi accedere o registrarti per scrivere nel forum
1 risposte