|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- int a,b,c,d;
- int k;
- int f(int,int);
- for(;;)
- {
- printf("\n\n\n\n\n\n\n\t\t\t请输入第一个分数的分子分母,逗号隔开。\n\t\t\t\t\t");
- scanf("%d,%d",&a,&b);
- printf("\t\t\t请输入第二个分数的分子分母,逗号隔开。\n\t\t\t\t\t");
- scanf("%d,%d",&c,&d);
- if(b!=0 && d!=0)
- {
- if(a*c == b*d) /* 乘 */
- {
- printf("\t\t\t\t%d/%d * %d/%d = 1\n",a,b,c,d);
- }
- else if(a*c == 0)
- {
- printf("\t\t\t\t%d/%d * %d/%d = 0\n",a,b,c,d);
- }
- else if(a*c % b*d ==0)
- {
- printf("\t\t\t\t%d/%d * %d/%d = %d\n",a,b,c,d,(a*c)/(b*d) );
- }
- else
- {
- printf("\t\t\t\t%d/%d * %d/%d = %d/%d\n",a,b,c,d,a*c/f(a*c,b*d),b*d/f(a*c,b*d));
- }
- if(a*d == b*c) /* 除 */
- {
- printf("\t\t\t\t%d/%d / %d/%d = 1\n",a,b,c,d);
- }
- else if(a*d == 0)
- {
- printf("\t\t\t\t%d/%d / %d/%d = 0\n",a,b,c,d);
- }
- else if(a*d % b*c ==0)
- {
- printf("\t\t\t\t%d/%d * %d/%d = %d\n",a,b,c,d,(a*d)/(b*c) );
- }
- else
- {
- printf("\t\t\t\t%d/%d / %d/%d = %d/%d\n",a,b,c,d,a*d/f(a*d,b*c),b*c/f(a*d,b*c));
- }
-
- if(a*d+c*b == b*d) /* 加 */
- {
- printf("\t\t\t\t%d/%d + %d/%d = 1\n",a,b,c,d);
- }
- else if(a*d+c*b == 0)
- {
- printf("\t\t\t\t%d/%d + %d/%d = 0\n",a,b,c,d);
- }
- else if((a*d+c*b) % (b*d) == 0)
- {
- printf("\t\t\t\t%d/%d + %d/%d = %d\n",a,b,c,d,(a*d+c*b) / (b*d));
- }
- else
- {
- printf("\t\t\t\t%d/%d + %d/%d = %d/%d\n",a,b,c,d,(a*d+c*b)/f(a*d+c*b,b*d),b*d/f(a*d+c*b,b*d));
- }
-
- if(a*d-c*b == b*d) /* 减 */
- {
- printf("\t\t\t\t%d/%d - %d/%d = 1\n",a,b,c,d);
- }
- else if(a*d-c*b == 0)
- {
- printf("\t\t\t\t%d/%d - %d/%d = 0\n",a,b,c,d);
- }
- else if((a*d-c*b) % b*d == 0)
- {
- printf("\t\t\t\t%d/%d - %d/%d = %d\n",a,b,c,d,(a*d-c*b) / b*d);
- }
- else
- {
- printf("\t\t\t\t%d/%d - %d/%d = %d/%d\n",a,b,c,d,(a*d-c*b)/f(a*d-c*b,b*d),b*d/f(a*d-c*b,b*d));
- }
- fflush(stdin);
- }
- else
- {
- printf("\t\t\t\t 输入有误!");
- }
- }
- fflush(stdin);
- return 0;
- }
- int f(int x,int y) /* 求结果的分子分母的最大公因数 */
- {
- int a,b,t;
- if(x>y)
- {
- t=x;
- x=y;
- y=t;
- }
- a=x;
- b=y;
-
- while(b!=0)
- {
- t=a%b;
- a=b;
- b=t;
- }
- return a;
- }
复制代码 Bug 1:不懂怎么判断是否输入数字(两位以上);
Bug 2: 程序有时候能成功,有时候不成功。
|
|