Ciao a tutti,stavo provando a realizzare un programma che fungesse da calcolatrice molto elementare,niente elevamenti a potenza per ora.Ho provato usando switch come segue:
codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a,b,c;
int i;
char y;
char repeat='y';
char o='?';
while(repeat == 'y')
{
while(o!='+' && o!='-' && o!='/' && o!='*')
{
printf("\n Impostare operazione come segue--> operando1 operatore operando2\n");
scanf("%f %c %f",&a,&o,&b);
}
switch(o)
{
case '+':
{
c=a+b;
printf("%f",c);
break;
}
case '-':
{
c=a-b;
printf("%f",c);
break;
}
case '/':
{
c=a/b;
printf("%f",c);
break;
}
case '*':
{
c=a*b;
printf("%f",c);
break;
}
}
printf("\n altre operazioni da eseguire? -->(y/n)<-- \n");
scanf("%c",&repeat);
o='?';
}
system("pause");
return 0;
}
il problema è che svolta la prima operazione lui si limita a stampare il risultato e "altre operazioni da eseguire?" senza aspettare che inserisca nulla fa terminare il programma.Mi viene il dubbio che il problema parta dallo switch,o meglio dal break nello switch,inizialmente pensavo che uscisse direttamente dal primo while,in tal caso non avrei chiaro perchè mi stampa comunque quell'ultimo printf che è comunque all'interno del while....
Grazie mille.