Come impostare il do-while per inserire una carattere char con la void

di il
9 risposte

Come impostare il do-while per inserire una carattere char con la void

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

9 Risposte

Devi accedere o registrarti per scrivere nel forum
9 risposte