关于c语言的题
答案:1 悬赏:30 手机版
解决时间 2021-05-08 08:10
- 提问者网友:相思似海深
- 2021-05-07 21:09
从键盘输入一个真分数(如8/11),将其分解成若干分子为1的分数之和,然后输出分解公式(如8/11=1/2+1/5+1/55+1/110)。
最佳答案
- 五星知识达人网友:玩家
- 2021-05-07 21:51
1.if(a=1)处应该是a==1,手误吧;
2.while循环判断中,true无效(我的编译器是这样的),我改为1。
代码如下:
#include<stdio.h>
int main(void)
{
long int a,b,c;
while (1)
{
printf("Please enter a optional fraction(a/b):");
scanf("%ld/%ld", &a, &b);//输入分子a和分母b
printf("It can be decomposed to:");
while (1)
{
if (b%a)//若分子不能整除分母
c=b/a+1;//则分解出一个分母为b/a+1的埃及分数
else
{
c = b/a; //否则,输出化简后的真分数(埃及分数)
a = 1;
}
if (a==1)
{
printf("1/%ld\n", c);
break;//a为l标志结束
}
else
printf("1/%ld + ", c);
a = a*c - b;//求出余数的分子
b = b*c; //求出余数的分母
if(a==3)//若余数为3,输出最后两个埃及分数
{
printf("1/%ld + 1%ld\n", b/2, b);
break;
}
}
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯