C语言 编程计算1-1/2+1/3-1/4+……±1/n直到最后一项绝对值小于10^-4为什么我输出的是sum=0.000000?

#include<stdio.h>#include<math.h>intmain(){doublen=1;floatterm=1.0,sign=1,sum=0;while... #include<stdio.h>
#include<math.h>
int main()
{
double n=1;
float term=1.0,sign=1,sum=0;
while(fabs(n)<10e-4)
{
term=sign*1/n;
sum=sum+term;
sign=-sign;
n++;
}
printf("sum=%f\n",sum);
return 0;
}
展开
 我来答
岔路程序缘

2019-12-23 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3403万
展开全部
1、输出0的原因:因为n的初值=1,循环后,n的值就会取2、3、4、5、6、……,fabs(n)总会≥1,故fabs(n)<10e-4永远不成立。
2、
shine1991
科技发烧友

2019-11-10 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

循环判断条件应该是

while (fabs(1/n) >= 1e-4)

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路过者天蝎96
2019-11-10 · TA获得超过3743个赞
知道大有可为答主
回答量:3573
采纳率:79%
帮助的人:2435万
展开全部
double n=1;
while(fabs(n)<10e-4)
while不会执行的
所以sum还是0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式