Cómo sumar fracciones en lenguaje C, generarlas como fracciones y simplificarlas
Programa C completo:
#include?"stdio.h"
/*?Estructura fraccionaria? */
typedef?struct
{
int?*/
int?*/
} ?Fracción;
int?GCD(int?a, int?b);
int?LCM(int?a, int?b);
¿Fracción?Add(Fracción?f1,?Fracción?f2);
void?main()
{
Fracción?f1,?f2,?f3 ;
f1.numerador?=?1;
f1.denominador?=?3;
f2.numerador?=?1;
f2.d/d\n",?f1.numerador,?f1.denominador,?f2.numerador,?f2.denominador,?f3.numerador,?f3.denominador);
}
/*?¿Devuelve el resultado de sumar dos fracciones? */
Fraction?Add(Fraction?f1,?Fraction?f2)
{
Fracción?retValue;
int?lcm?=?LCM(f1.denominator,?f2.denominator); /*?Calcular el mínimo común múltiplo */
int?gcd;
retValue.denominator?=?lcm;
retValue.numerator?=?f1.numerator?*?lcm? /?f1.Denominador? ?f2.Numerador?*?lcm?/?f2.Denominador;
gcd?=?GCD(retValue.numerador,?retValue.denominador);
retValue.numerator?/=?gcd;
RetValue.p> retValue.denominator?/=?gcd;
return?retValue;
}
p>/*?Devuelve el máximo común divisor de dos números enteros */
int?GCD(int?a, int?b)
{
int?i, temp_gcd;
for(i=a;igt;=1;i--)
{
si (ai= =0)
{
si( bi==0)
{
temp_gcd=i;
return?temp_gcd;
}
}
}
}
} p>
/*?¿Devolver el mínimo común múltiplo de dos números enteros? */
int?LCM(int?a, int?b)
{
int?temp_lcm;
temp_lcm?= ?a?*?b?/?GCD(a,b);
return?temp_lcm;
}
Ejecute la prueba: