C语言编程题(分数的四则运算)
來源:互聯網 2010-03-14 09:33:07 評論
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
問題描述:
输入:
分数1 操作符 分数2
输出:
计算结果。
例;测试输入 1/3+1/2
3/10*2/3
3/10/3/5
1/3-1/2
1/5*10/1
期待的输出1/3 + 1/2 = 5/6
3/10 * 2/3 = 1/5
3/10 / 3/5 = 1/2
1/3 - 1/2 = -1/6
1/5 * 10/1 = 2
參考答案:
//呵呵!写的有些麻烦,但输入的格式你要求的是那样,
//只好这样了,应该还符合你的要求!你可以测试一下,
//但输入时不必输入括号。如果有兴趣的话,
//可以加我qq,大家共同交流!qq:***********
#include
main()
{char mo1,op,mo2;
int a,b,c,d,e,f;
scanf("%d%c%d%c%d%c%d",&a,&mo1,&b,&op,&c,&mo2,&d);
if(b==0||d==0)
{printf("分母不能为零!\n");
exit(0);
}
switch(op)
{
case'+':
{
f=b*d;
e=(a*d+c*b);
break;
}
case'-':
{
f=b*d;
e=(a*d-c*b);
break;
}
case'*':
{
e=a*c;
f=b*d;
break;
}
case'/':
{
e=a*d;
f=b*c;
break;
}
}
while(e%2==0&&f%2==0)
{
e=e/2;
f=f/2;
}
while(e%3==0&&f%3==0)
{
e=e/3;
f=f/3;
}
if(e==f||e==0)
printf("%d%c%d%c%d%c%d=%d\n",a,mo1,b,op,c,mo2,d,e);
else printf("%d%c%d%c%d%c%d=%d/%d\n",a,mo1,b,op,c,mo2,d,e,f);
}
[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]输入:
分数1 操作符 分数2
输出:
计算结果。
例;测试输入 1/3+1/2
3/10*2/3
3/10/3/5
1/3-1/2
1/5*10/1
期待的输出1/3 + 1/2 = 5/6
3/10 * 2/3 = 1/5
3/10 / 3/5 = 1/2
1/3 - 1/2 = -1/6
1/5 * 10/1 = 2[br][b]参考答案:[/b][br]//呵呵!写的有些麻烦,但输入的格式你要求的是那样,
//只好这样了,应该还符合你的要求!你可以测试一下,
//但输入时不必输入括号。如果有兴趣的话,
//可以加我qq,大家共同交流!qq:***********
#include
main()
{char mo1,op,mo2;
int a,b,c,d,e,f;
scanf("%d%c%d%c%d%c%d",&a,&mo1,&b,&op,&c,&mo2,&d);
if(b==0||d==0)
{printf("分母不能为零!\n");
exit(0);
}
switch(op)
{
case'+':
{
f=b*d;
e=(a*d+c*b);
break;
}
case'-':
{
f=b*d;
e=(a*d-c*b);
break;
}
case'*':
{
e=a*c;
f=b*d;
break;
}
case'/':
{
e=a*d;
f=b*c;
break;
}
}
while(e%2==0&&f%2==0)
{
e=e/2;
f=f/2;
}
while(e%3==0&&f%3==0)
{
e=e/3;
f=f/3;
}
if(e==f||e==0)
printf("%d%c%d%c%d%c%d=%d\n",a,mo1,b,op,c,mo2,d,e);
else printf("%d%c%d%c%d%c%d=%d/%d\n",a,mo1,b,op,c,mo2,d,e,f);
}