C语言 分数的四则运算

大家看看哪里错了啊?我不管算加减乘除都无法进行,会自动结束程序。。。
输入:
分数1 操作符 分数2
输出:
#include"stdio.h"
main()
{
int a,b,d,e,f,g,x,y,z;
char c;
scanf("%d/%d %c %d/%d",&a,&b,&c,&d,&e); /*input the data*/
g=b*e;
if (c=='+') {f=a*e+b*d;}
else {if(c=='-') {f=a*e-b*d;}
else {if(c=='/') {f=a*e;
g=b*d;}
else f=a*d;}} /*do calculating*/
if(f==0) {printf("%d/%d %c %d/%d= 0\n");} /*judge result is 0 or not*/
else {x=g;
y=f;
if(x>y) {z=x%y; /*work out the greatest common divisor*/
do {if(y>z) {x=y;
y=z;}
else {x=z;}
z=x%y;
}while(z!=0);
g=g/y;
f=f/y;
printf("%d/%d %c %d/%d= %d/%d\n",a,b,c,d,e,f,g);}
else {z=y%x;
do {if(x>z) y=x;
x=z;
z=y%x;
}while(z!=0);
g=g/x;
f=f/x;
printf("%d/%d %c %d/%d= %d/%d\n",a,b,c,d,e,f,g);}}
return 0;
}

第1个回答  2011-10-15
scanf("%d/%d %c %d/%d",&a,&b,&c,&d,&e);你在% %之间加/干吗啊,要去掉
另外,你说的自动结束程序应该是编程的系统问题,在输出函数之后加上system("pause");试试。
顺便说一下,你的排序太乱了本回答被提问者采纳
第2个回答  2011-10-14
你的程序太复杂了吧;应该好好学学算法了
这是我的四则运算程序

main()
{
float a,b;
char c;
printf("please type a+-*/b\n");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case '+':printf("%f",a+b);break;
case '-':printf("%f",a-b);break;
case '*':printf("%f",a*b);break;
case '/':printf("%f",a/b);break;
default:printf("error\n");
}
}追问

输入输出必须要用1/2+2/3=...这种格式!!!

追答

你连一点分都不给好要求那么多。无语ing.......

追问

你想要分,就你这破技术!门都没有!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网