分数加减法
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)
Problem Description
编写一个C程序,实现两个分数的加减法
Input
输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。
数据以EOF结束
输入数据保证合法
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。
数据以EOF结束
输入数据保证合法
Output
对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
Sample Input
1/8+3/8 1/4-1/2 1/3-1/3
Sample Output
1/2 -1/4 0
//;
1 #include<stdio.h> 2 int gongyueshu(int a,int b) 3 { 4 int i,temp,jieguo; 5 for(i=1;i<=a;i++) 6 { 7 if(a%i==0&&b%i==0) 8 jieguo=i; 9 } 10 return jieguo; 11 } 12 int main() 13 { 14 int a,b,c,d; char ch; 15 while(~scanf("%d/%d%c%d/%d",&a,&b,&ch,&c,&d)) 16 { 17 int len,temp; 18 a*=d; c*=b; b*=d; 19 if(ch=='-') 20 { 21 len=a-c; int cmp; 22 if(len<0) 23 { 24 cmp=len*-1; //len <0 ; 25 temp=gongyueshu(cmp,b); 26 } 27 } 28 else 29 { 30 len=a+c; 31 temp=gongyueshu(len,b); 32 } 33 if(len==0) 34 printf("0\n"); 35 else 36 printf("%d/%d\n",len/temp,b/temp); 37 } 38 return 0; 39 }