Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti...Scusate se apro un topic x questa banalità ma non riesco a superarla allora io ho una calcolatrice generale cioè mi fa le 4 operazioni basilari(+, -, /, *) con questo codice:
Codice sorgente - presumibilmente C++
#include <iostream>
#include <string>
#include <cstdlib>
usingnamespace std;
int Generale(int a, int op, int b);
int main(){
int a =0;
int op;
int b =0;
cout<<"1 numero: ";
cin>> a;
cout<<"2 numero: ";
cin>> b;
cout<<"Operatore: ";
cin>> op;
if(a > 0){
if(b > 0){
int rix;
rix = Generale(a, op, b);
cout<<"risultato: "<< rix << endl;
}
}
return0;
}
int Generale(int a, int op, int b){
int rix;
rix = a + op + b;
}
Però io questo pezzo di codice:
Codice sorgente - presumibilmente C++
int Generale(int a, int op, int b){
int rix;
rix = a + op + b;
}
che serve per fare i calcoli non riesco a trovare una soluzione cioè ad esempio io scrivo 1+1 e lui come risultato mi da 134514939...perchè? come faccio a risolverlo??
Grazie mille
semplicemente non puoi dichiarare op come int, ma devi farlo come char, e poi impostare una serie di controlli che verificano op, ad esempio
if(op=='+')
rix=a+b;
e via dicendo,
ecco il codice funzionante:
Codice sorgente - presumibilmente C++
#include <iostream>
#include <string>
#include <cstdlib>
usingnamespace std;
float Generale(float a, char op, float b);
int main()
{
float a =0;
char op;
float b =0;
cout<<"1 numero: ";
cin>> a;
cout<<"2 numero: ";
cin>> b;
cout<<"Operatore: ";
cin>> op;
if(a > 0){
if(b > 0){
float rix;
rix = Generale(a, op, b);
cout<<"risultato: "<< rix << endl;
}
}
return0;
}
float Generale(float a, char op, float b)
{
float rix;
if(op=='+')
rix = a + b;
elseif(op=='*')
rix=a*b;
elseif(op=='-')
rix=a-b;
elseif(op=='/')
rix=a/b;
return rix;
}
naturalmente il codice può essere migliorato e non di poco, ma sono sicuro che a questo ci penserai tu vero!?