Salve a tutti. Ho questo esercizio da svolgere: Scrivi un algoritmo che, dati in input due frazioni, determini la loro somma, la differenza, il prodotto e il quoziente.
Questo è il codice:
#include <iostream>
#include <stdlib.h>
using namespace std;
void somma(int,int,int,int);
void differenza(int,int,int,int);
void prodotto(int,int,int,int);
void quoziente(int,int,int,int);
int mcm(int,int);
int mcd(int,int);
int main ()
{
int n1,n2,d1,d2,s,diff,prod,div,mc,md;
cout<<"Inserisci la prima frazione"<<endl;
cin>>n1>>d1;
cout<<"Inserisci la seconda frazione"<<endl;
cin>>n2>>d2;
somma(n1,n2,d1,d2);
differenza(n1,n2,d1,d2);
prodotto(n1,n2,d1,d2);
quoziente(n1,n2,d1,d2);
system ("pause");
return 0;
}
void somma(int d1,int d2,int n1,int n2)
{
int mc,s;
mc=mcm(d1,d2);
s=n1+n2;
cout<<"La somma e\' "<<s/mc<<endl;
}
int mcm(int d1,int d2)
{
int mc,md;
md=mcd(d1,d2);
mc=((d1*d2)/md);
return mc;
}
int mcd(int d1,int d2)
{
int resto,md;
do
{
md=resto;
resto=d1%d2;
d2=d1;
d1=resto;
} while (resto!=0);
return md;
}
void differenza(int d1,int d2,int n1,int n2)
{
int mc,d;
mc=mcm(d1,d2);
d=n1-n2;
cout<<"La differenza e\' :"<<d/mc<<endl;
}
void prodotto(int d1,int d2,int n1,int n2)
{
int p1,p2;
p1=d1*d2;
p2=n1*n2;
cout<<"Il prodotto e\' :"<<p2/p1<<endl;
}
void quoziente(int d1,int d2,int n1,int n2)
{
int p1,p2;
p1=d1*n2;
p2=d2*n1;
cout<<"Il quoziente e\' :"<<p2/p1<<endl;
}
Quando mando in compilazione come risultato mi dà sempre 0 a tutto. Non riesco proprio a capire l'errore. Spero possiate aiutarmi. Grazie