#include<stdio.h>
void suma(int num1, int num2);
void calculden(int, int, int *resul);
void calculnum(int num1, int num2,int resulden,int den1,int den2, int *sumnumtotal);
void mcd(int dividendo, int divisor, int *resul);
void mcm(int dividendo, int divisor, int resul, int *resulmcm);
int main()
{
int num1,num2,den1,den2,resul,resulden,resulmcm,sumnumtotal;
printf("Programa que cacula el resultat de la suma de dues fracciones. n");
printf("n");
printf("n");
printf("Introdueix el numerador de la primera fraccio: n");
scanf("%d", &num1);
printf("Introdueix el denomirador de la primera fraccio: n");
scanf("%d", &den1);
printf("Ahora la segona fraccio. n");
printf("Introdueix el numerador de la segona fraccio: n");
scanf("%d", &num2);
printf("Introdueix el denominador de la segona fraccio: n");
scanf("%d", &den2);
if (den1 == den2)
{
printf("La suma de les fraccions dona com a resultat: %d/%d n", num1+num2,den1);
getchar();
getchar();
}
else
{
calculden(den1,den2, &resul);
calculnum(num1,num2,resulmcm,den1,den2,&sumnumtotal);
printf("La suma de les fracciones dona com a resultat: %d/%d n", sumnumtotal,resul);
getchar();
getchar();
}
}
void calculden(int den1, int den2, int *resulmcm)
{
int dividendo1;
if (den1 > den2)
{
mcd(den1,den2,*dividendo1);
mcm(den1,den2,dividendo1,*resulmcm);
}
else
{
mcd(den2,den1,*dividendo1);
mcm(den2,den1,dividendo1,*resulmcm);
}
}
void mcd(int dividendo1, int divisor, int *resul)
{
int aux;
do
{
aux = divisor;
divisor = dividendo1 % divisor;
dividendo1 = aux;
}while (divisor != 0);
*resul=dividendo1;
}
void mcm(int dividendo, int divisor, int resul,int *resulmcm)
{
*resulmcm=(dividendo*divisor)/resul;
}
void calculnum(int num1,int num2, int resulden, int den1, int den2, int *sumnumtotal)
{
int sumnum1,sumnum2;
sumnum1=num1*resulden/den1;
sumnum2=num2*resulden/den2;
*sumnumtotal=sumnum1+sumnum2;
}