Salve a tutti.
stavo facendo un programmino a caso per impratichirmi sull'uso delle funzioni.
tutto bene tutto a posto tranne , nell'ultima parte di codice, quando provo a fare la divisione delle due
funzioni.
quando immetto ne codice la sequenza di numeri in coppia a salire : per esempio 1-2 3-4 5-6 7-8 e la quaterna di numeri 9-10-11-12
funziona , mi da il corretto risultato.
quando invece uso le coppie 1-1 2-2 3-3 4-4 e la quaterna 5-5-6-6 il programma va in crash.
inizialmente pensavo si trattasse di un errore di tipo (che non giustificherebbe il crash) avendo usato il tipo double per la variabile w.
cambiandolo in int il crash permane.
ovvio che mancano i controlli di tipo e tante altre cosine che al momento non saprei nemmeno gestire.
mi piacerebbe avere una spiegazione tecnica dell'avvenuto, e anche una terra terra casomai mi sfuggisse qualcosa su quella tecnica.
riporto il codice di seguito. grazie
#include <iostream>
using namespace std;/// esercizi con dichiarazione e chiamate di funzioni
int f_somma ( int a=0 ,int b=0) /// dicgiarazione della funzione f_somma
{ cin>>a>>b;
int res = a+ b;
return res; /// corpo della funzione f_somma
}
int diff (int a =0 , int b =0) /// dichiarazione della funzione diff
{
cin>> a >>b;
int ris = a-b;
return ris; /// corpo della funzione diff
}
int main()
{
int z = f_somma () ; /// chiamata della funzione f_somma
cout<<"somma: " << z << "\n"; ///stampa risultato di f_somma
if (z%2 == 0 ) /// controllo del risultato pari o dispari
cout << "il risultato e' pari \n"; ///stampa del risultato dìse pari
else
cout << "il risultato e' dispari \n"; /// stampa del risultato se dispari
int h = diff () ; /// chiamata della funzione diff
cout<<"diffe: " << h << "\n"; /// stampa risultato di diff
z= f_somma()+70; /// altra chiamata per la funzione f_somma
cout<< "f_somma+70=: "<< z<< "\n"; ///stampa del risultato
z= f_somma()-3; ///ulteriore chiamata della funzione f_somma
cout<<" f_somma-3=: " << z << "\n"; /// stampa del risultato
int w=f_somma ()/diff(); ///operazione su due funzioni
cout<< "w=:"<< w << "\n";
return 0;
}