C语言编程实现分数的加减法 要求化简的.编写一个程序,实现两个分数的加减法输入输入包含多行数据 每行数据是一个字符串,格式是"a/boc/d".其中a,b,c,d是一个0-9的整数.o是运算符"+"或者"-",(b!=0
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 01:04:26
![C语言编程实现分数的加减法 要求化简的.编写一个程序,实现两个分数的加减法输入输入包含多行数据 每行数据是一个字符串,格式是](/uploads/image/z/8380332-36-2.jpg?t=C%E8%AF%AD%E8%A8%80%E7%BC%96%E7%A8%8B%E5%AE%9E%E7%8E%B0%E5%88%86%E6%95%B0%E7%9A%84%E5%8A%A0%E5%87%8F%E6%B3%95+%E8%A6%81%E6%B1%82%E5%8C%96%E7%AE%80%E7%9A%84.%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%2C%E5%AE%9E%E7%8E%B0%E4%B8%A4%E4%B8%AA%E5%88%86%E6%95%B0%E7%9A%84%E5%8A%A0%E5%87%8F%E6%B3%95%E8%BE%93%E5%85%A5%E8%BE%93%E5%85%A5%E5%8C%85%E5%90%AB%E5%A4%9A%E8%A1%8C%E6%95%B0%E6%8D%AE+%E6%AF%8F%E8%A1%8C%E6%95%B0%E6%8D%AE%E6%98%AF%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%2C%E6%A0%BC%E5%BC%8F%E6%98%AF%22a%2Fboc%2Fd%22.%E5%85%B6%E4%B8%ADa%2Cb%2Cc%2Cd%E6%98%AF%E4%B8%80%E4%B8%AA0-9%E7%9A%84%E6%95%B4%E6%95%B0.o%E6%98%AF%E8%BF%90%E7%AE%97%E7%AC%A6%22%2B%22%E6%88%96%E8%80%85%22-%22%2C%28b%21%3D0)
C语言编程实现分数的加减法 要求化简的.编写一个程序,实现两个分数的加减法输入输入包含多行数据 每行数据是一个字符串,格式是"a/boc/d".其中a,b,c,d是一个0-9的整数.o是运算符"+"或者"-",(b!=0
C语言编程实现分数的加减法 要求化简的.
编写一个程序,实现两个分数的加减法
输入
输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d".
其中a,b,c,d是一个0-9的整数.o是运算符"+"或者"-",(b!=0,=0).
数据以EOF结束
输出
对于输入数据的每一行输出两个分数的运算结果.
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
样例输入
1/8+3/8
1/4-1/2
1/3-1/3
样例输出
1/2
-1/4
0
提示
C语言编程实现分数的加减法 要求化简的.编写一个程序,实现两个分数的加减法输入输入包含多行数据 每行数据是一个字符串,格式是"a/boc/d".其中a,b,c,d是一个0-9的整数.o是运算符"+"或者"-",(b!=0
#include<stdio.h>
#include <math.h>
int GCD(int m,int n) //求最大公约数
{
int tmp;
m=abs(m);
n=abs(n);
if(m==n)
return m;
if(m<n)
{
tmp=m;
m=n;
n=tmp;
}
while(m%n!=0)
{
tmp=m;
m=n;
n=tmp%n;
}
return n;
}
int main()
{
int a,b,c,d; //两个分数的分子和分母
int gcd_mn;
int res_den,res_num; //分母和分子
char op;
scanf("%d/%d%c%d/%d",&a,&b,&op,&c,&d);
gcd_mn=GCD(b,d); //求最大公约数
res_den=b*d/gcd_mn;
if(op=='+')
res_num=a*(res_den/b)+c*(res_den/d);
else
res_num=a*(res_den/b)-c*(res_den/d);
if(res_num!=0)
{
gcd_mn=GCD(res_num,res_den);
res_num=res_num/gcd_mn;
res_den=res_den/gcd_mn;
printf("%d/%d\n",res_num,res_den);
}
else
printf("0\n");
return 0;
}
代码可能有点乱,运行无误