c语言,想问一下哪里出错了? 5

我的程序运行结果为1.000000... 我的程序运行结果为1.000000 展开
 我来答
听不清啊
高粉答主

2021-06-22 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.8亿
展开全部

这是因为在C语言中,两个整数的商仍是一个整数,所以,任何“真分数”的除法,在C语言中所得到的商都是0。所以,在你的程序中,循环体中,除了第一项,1/1=1外,1/2=0,1/6=0,1/24=0,……,所以最后的结果就是1.000000

下面已经给出了最小修改的方案,1.0/……,这样系统在做除法时,会把分母也转换为浮点数,然后做除法,就能得到正确答案了。最好的方法是,把int fact(int n)改为double fact(int n)

并把int m=1;改为double m=1;float t,u;改为double t,u;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式