Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Dove sbaglio??
Forum - C/C++ - Dove sbaglio??

Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 15:57
Sabato, 19/09/2009
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++

  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. using namespace std;
  5. int Generale(int a, int op, int b);
  6. int main(){
  7. int a = 0;
  8. int op;
  9. int b = 0;
  10. cout << "1 numero: ";
  11. cin >> a;
  12. cout << "2 numero: ";
  13. cin >> b;
  14. cout << "Operatore: ";
  15. cin >> op;
  16. if(a > 0){
  17.          if(b > 0){
  18.                              int rix;
  19.                              rix = Generale(a, op, b);
  20.                              cout << "risultato: " << rix << endl;
  21. }
  22. }
  23. return 0;
  24. }
  25. int Generale(int a, int op, int b){
  26. int rix;
  27. rix = a + op + b;
  28. }


Però io questo pezzo di codice:
Codice sorgente - presumibilmente C++

  1. int Generale(int a, int op, int b){
  2. int rix;
  3. rix = a + op + b;
  4. }


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:k:


Android User :)

MudStorm OS Source GitHub: https://github.com/Piso94/MudStorm-OS
PM Quote
Avatar
Premoli (Normal User)
Pro


Messaggi: 108
Iscritto: 25/06/2009

Segnala al moderatore
Postato alle 16:25
Sabato, 19/09/2009
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++

  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. float Generale(float a, char op, float b);
  7.  
  8. int main()
  9. {
  10.     float a = 0;
  11.     char op;
  12.     float b = 0;
  13.    
  14.     cout << "1 numero: ";
  15.     cin >> a;
  16.     cout << "2 numero: ";
  17.     cin >> b;
  18.     cout << "Operatore: ";
  19.     cin >> op;
  20.  
  21.     if(a > 0){
  22.         if(b > 0){
  23.             float rix;
  24.             rix = Generale(a, op, b);
  25.             cout << "risultato: " << rix << endl;
  26.         }
  27.     }
  28.     return 0;
  29. }
  30.  
  31. float Generale(float a, char op, float b)
  32. {
  33.     float rix;
  34.  
  35.     if(op=='+')
  36.         rix = a + b;
  37.     else if(op=='*')
  38.         rix=a*b;
  39.     else if(op=='-')
  40.         rix=a-b;
  41.     else if(op=='/')
  42.         rix=a/b;
  43.  
  44.     return rix;
  45. }



naturalmente il codice può essere migliorato e non di poco, ma sono sicuro che a questo ci penserai tu vero!? ;)

se c'è qualcosa che non capisci chiedi pure...

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 18:40
Sabato, 19/09/2009
Grazie mille...Lo dicevo ke era una cosa banale ma non capivo dove sbagliavo...comunque grazie mille:k:


Android User :)

MudStorm OS Source GitHub: https://github.com/Piso94/MudStorm-OS
PM Quote
Avatar
Premoli (Normal User)
Pro


Messaggi: 108
Iscritto: 25/06/2009

Segnala al moderatore
Postato alle 20:20
Sabato, 19/09/2009
De nada ;)

PM Quote