E' un compito della scuola. ho provato a togliere il do while dalla void "input_operatore" e va. ma vorrei usare il do while. quando provo a compilarlo, anche se metto un "+" mi viene fuori "Operatore errato, reinserire". non so come fare.
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
/*
5. Acquisire 2 valori interi e positivi e un operatore (+ - / * ^) restituire il risultato dell’operazione relativa:
a. input_valori
b. input_operatore
c. calcolo
*/
void input_valori(int &a, int &b)
{
do{
cin>>a;
if(a<=0)
cout<<"Numero errato, reinserire"<<endl;
}while(a<=0);
do{
cin>>b;
if(b<=0)
cout<<"Numero errato, reinserire"<<endl;
}while(b<=0);
}
void input_operatore(char &a)
{
do{
cin>>a;
if(a!='+' or a!='-' or a!='/' or a!='^')
cout<<"Operatore errato, reinserire"<<endl;
} while(a!='+' or a!='-' or a!='/' or a!='^');
}
int main()
{
int x, y;
char o;
float t;
cout<<"Inserire due numeri interi positivi:"<<endl;
input_valori(x,y);
cout<<"Inserire un operatore (+ - / * ^):"<<endl;
input_operatore(o);
switch (o){
case '+': t=x+y;
break;
case '-': t=x-y;
break;
case '/': t=x/y;
break;
case '^': t=pow(x,y);
}
cout<<"Il risultato di "<<x<<" "<<o<<" "<<y<<" e': "<<t<<endl;
return 0;
}
forse non e' chissa quale problema ma non sono molto bravo in questi programmi . grazie per l'aiuto