Problema con codice per calcolo tra due numeri

di Anonimizzato22528 il
3 risposte
Salve, sono nuovo nel forum e ho iniziato da poco a smanettare con il C++. Per imparare ad usare if ho fatto un piccolo codice dati due numeri per fare dei calcoli. Quando l'ho creato funzionava correttamente però quando ho aggiunto la funzione processo(non so se si chiami funzione o altro scusate l'ignoranza) ha smesso di calcolare e mi da 0 come risultato qualsiasi. Allego il codice qui:
#include <iostream>
using namespace std;


    double x;
    double y;
    int scelta;
    int sceltaerrore;
    int somma= x + y;
    int differenza=x-y;
    int prodotto=x*y;
    double quoziente=x/y;
int processo(){

        cout<<"premi 1 per la somma"<<endl;
    cout<<"premi 2 per la differenza"<<endl;
    cout<<"premi 3 per il prodotto"<<endl;
    cout<<"premi 4 per il quoziente"<<endl;
    cin>>scelta;
 
        if(scelta==1){
        cout<<"La somma é: "<<somma;
    }

    else if(scelta==2){
        cout<<"La differenza é: "<<differenza;
        }
    else if(scelta==3){
        cout<<"Il prodotto é: "<<prodotto;
        }
    else if(scelta==4){
        if(y==0){
            cout<<"Non é possibile dividere per 0\n";
            cout<<"Vuoi riprovare ?\n";
            cout<<"1=si, 2=no\n";
            cin>> sceltaerrore;
            if(sceltaerrore==1){
                return processo();
            }
            else{
                 return 0;
            }

            }
        else{
            cout<<"Il quoziente é: "<<quoziente;
            }
        }
    else{
        cout<<"Non hai scelto un comando\n";
        cout<<"Riprova...\n";
        return processo();
        }
}

int main()
{
   

    cout<<"primo numero\n";
    cin >> x;   
    cout<<"secondo numero\n";
    cin >> y;  
 
    processo();

}

Inoltre vorrei sapere se ci fosse un metodo per non fare inserire lettere .
Grazie per la considerazione

3 Risposte

  • I calcoli li devi fare dentro la funzione

    Questi

    int somma= x + y;
        int differenza=x-y;
        int prodotto=x*y;
        double quoziente=x/y;

    devono stare nella processo
  • Grazie mille! Non ci credo che fosse così stupido. Comunque cosa dovrei studiare per imparare a non far inserire lettere? Perchè se inserisco delle lettere il programma va in loop.
  • Devi inserire i dati in una stringa, controllare che ci siano solo cifre e trasformare la stringa in numero.
Devi accedere o registrarti per scrivere nel forum
3 risposte