任意分数的计算
如何对任意分数加以计算,比如:(2/3)+(14/23)或者(5/6)/(9/13),结果还是用分数的形式表示出来。如能化简,更好。
#include<stdio.h> #include<stdlib.h> main() { int a,b,c,d,i,x,y; char op; printf("输入第一个分数的分母\n"); scanf("%d",&a); printf("输入第一个分数的分子\n"); scanf("%d",&b); printf("输入运算符号\n"); scanf("%c",&op); printf("输入第二个分数的分母\n"); scanf("%d",&c); printf("输入第二个分数的分子\n"); scanf("%d",&d); if(a==0||c==0) exit(0); if(op=='+'){y=b*c+d*a;x=a*c;} if(op=='-'){y=b*c-d*a,x=a*c;} if(op=='*'){y=b*d;x=a*c;} if(op=='/'){y=b*c;x=a*d;} if(y==0&&x!=0) { printf("%d/%d%c%d/%d=0\n",b,a,op,d,c); } if(x>y) i=y; while(i>1) { if(x%i==0&&y%i==0){x=x/i;y=y/i;continue;} i--; } if(x/i==1) printf("%d/%d%c%d/%d=%d\n",b,a,op,d,c,y); else printf("%d/%d%c%d/%d=%d/%d.\n",b,a,op,d,c,y,x); }