#include <stdio.h> int gcd(int a,int b){ int i,max; for(i=1;i<=a&&i<=b;i++){ if(a%i==0&&b%i==0){ max=i; } } return max; } int main(){ int a,b,c,d; char x; while(scanf("%d/%d%c%d/%d",&a,&b,&x,&c,&d)!=EOF){ int a1=a*d,b1=b*d,c1=c*b,d1=d*b; int ansa,ansb,gcdd,flag; if(x=='+'){ ansa=a1+c1; ansb=b1; gcdd=gcd(ansa,ansb); ansa/=gcdd; ansb/=gcdd; }else if(x=='-'){ if(a1>c1){ ansa=a1-c1; flag=1; }else{ ansa=c1-a1; flag=0; } ansb=b1; gcdd=gcd(ansa,ansb); ansa/=gcdd; ansb/=gcdd; } if(ansa==0){ printf("0\n"); }else{ if(flag==0){ printf("-"); } if(ansb==1){ printf("%d\n",ansa); }else{ printf("%d/%d\n",ansa,ansb); } } } } |
Double click to view unformatted code.