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);
}