1/8+3/8 1/4-1/2 1/3-1/3
1/2 -1/4 0
1 2 #include<cstdio> 3 #include<iostream> 4 #include<algorithm> 5 #include<string.h> 6 #define swap(a,b) {temp=a;a=b;b=temp;} 7 int a,b,c,d,temp; 8 int gotit(int a,int b) 9 { 10 if(a<b) 11 swap(a,b); 12 while(b) 13 { 14 temp=b; 15 b=a%b; 16 a=temp; 17 } 18 return a; 19 } 20 void yuris() 21 { 22 int s=gotit(c,d); 23 if(s==1) 24 return; 25 c/=s; 26 d/=s; 27 if(d<0) 28 { 29 c=-c; 30 d=-d; 31 } 32 } 33 int main() 34 { 35 char fuhao; 36 while(~scanf("%d/%d%c%d/%d",&a,&b,&fuhao,&c,&d)) 37 { 38 if(b!=d) 39 { 40 temp=b; 41 b=b*d; 42 a=a*d; 43 d=d*temp; 44 c=c*temp; 45 } 46 if(fuhao==‘+‘) 47 c=a+c; 48 else 49 c=a-c; 50 if(c==0) 51 printf("0\n"); 52 else 53 { 54 yuris(); 55 if(d!=1) 56 printf("%d/%d\n",c,d); 57 else 58 printf("%d\n",c); 59 } 60 } 61 return 0; 62 } 63
原文:http://www.cnblogs.com/caterpillarofharvard/p/4230463.html