分数的四则运算
在小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,现在我们尝试下用C语言来实现。
输入:
分数1 操作符 分数2
输出:
计算结果
要求:
计算结果使用分数表示,并且为最简化。例如结果为2/6,则被简化为1/3
Maxgongyueshu为求最大公约数的函数。有些情况通不过,求大神看看那错了。
#include <stdio.h>
#include <stdlib.h>
int Maxgongyueshu(int a,int b)
{
int i,c;
if (a<b)
{
c=a;
a=b;
b=c;
}
do
{
i=a%b;
a=b;
b=i;
}while(i!=0);
return a;
}
int main()
{
int f1,f2,m1,m2,f,m,g;
scanf("%d/%d+%d/%d",&f1,&m1,&f2,&m2);
m=m1*m2;
f=f1*m2+f2*m1;
g=Maxgongyueshu(f,m);
if (g==1)
{
if (m==1)
printf("%d/%d+%d/%d=%d\n",f1,m1,f2,m2,f);
else
printf("%d/%d+%d/%d=%d/%d\n",f1,m1,f2,m2,f,m);
}
else if (g==m)
printf("%d/%d+%d/%d=%d\n",f1,m1,f2,m2,f/m);
else
{
f=f/g;
m=m/g;
printf("%d/%d+%d/%d=%d/%d\n",f1,m1,f2,m2,f,m);
}
return 0;
}