Operazioni con le frazioni

di il
1 risposte

Operazioni con le frazioni

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

1 Risposte

  • Re: Operazioni con le frazioni

    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;
    }
    ma scusa... se hai ( n1/d1 ) + ( n2 / d2 ) tu semplifichi come ( n1 + n2 ) / mcm( d1, d2 ) ????
    Inizia dalle cose semplici e corrette:
    ( n1/d1 ) + ( n2 / d2 ) = ((n1*d2)+(n2*d1))/(d1*d2)
    Prima di tutto fai funzionare questa...
    Poi definisci una struttura che abbia numeratore e denominatore, così i valori non solo li puoi passare più elegantemente ma anche potrai restituire delle frazioni
Devi accedere o registrarti per scrivere nel forum
1 risposte