1 /*
 2 描述
 3 编写一个C程序,实现两个分数的加减法
 4 输入
 5 输入包含多行数据 
 6 每行数据是一个字符串,格式是"a/boc/d"。 
 7 其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。 
 8 
 9 数据以EOF结束 
10 输入数据保证合法
11 输出
12 对于输入数据的每一行输出两个分数的运算结果。 
13 注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
14 样例输入
15 1/8+3/8
16 1/4-1/2
17 1/3-1/3
18 样例输出
19 1/2
20 -1/4
21 0
22 */
23 #include<stdio.h>
24 int main()
25 {
26     char s[8];
27     void f(int x,int y);
28     while(scanf("%s",s) != EOF)
29     {
30         int a, b, c, d;
31         a = s[0] - 48;
32         b = s[2] - 48;
33         c = s[4] - 48;
34         d = s[6] - 48;
35         a *= d;
36         c *= b;
37         b *= d;
38         if(s[3] == '+')
39         a += c;
40         else
41         a -= c;
42         if(a*b>0)  f(a,b);
43         else if(a*b == 0)printf("0\n");
44         else if(a*b<0) 
45         {
46             printf("-");
47             if(a<0)a=-a;
48             else  b=-b;
49             f(a,b);
50         }
51     }
52     return 0;
53 }
54 void f(int x,int y)
55 {
56     int i;
57     if(x % y == 0)
58     printf("%d\n",x/y);
59     else
60     {
61         for(i=x;i>=2;i--)
62         if(x%i==0&&y%i==0)
63         {
64             x/=i;
65             y/=i;
66         }
67         printf("%d/%d\n",x,y);
68     }
69 }