C语言求帮助!!求e的近似值,用1/1!+1/2!+1/3!+.......1/n!

#include"stdio.h"voidmain(){intn=1;longk=1;floatsum=0;while(sum>1e-6){k*=n;sum+=1.0/k... # include "stdio.h"
void main()
{
int n=1;
long k=1;
float sum=0;
while(sum>1e-6)
{
k *= n;
sum += 1.0/k;
n++;

}
printf("%.2f\n",sum);
}

}

为啥子没有运行结果,怎么错了!运行不正确。。求解。。希望能告之我哪错了。。
展开
 我来答
memberwin
推荐于2018-03-02 · TA获得超过3903个赞
知道大有可为答主
回答量:1000
采纳率:100%
帮助的人:517万
展开全部
判断条件错了
while(sum>1e-6)
开始sum被初始化为0,直接就不满足while条件,while根本不执行
应该用while(1.0/k >1e-6)
小 o
推荐于2017-05-23 · 知道合伙人IT服务行家
小 o
知道合伙人IT服务行家
采纳数:11 获赞数:161
深圳市奥斯恩净化技术有限公司 技术负责人 珠海创新人才奖

向TA提问 私信TA
展开全部
首先:%0.2f表示小数点后只要两位的喔?
其次:错误是在while(sum>le-6),这个是因为,刚刚开始的时候,sum就是一个0,不大于le-6,所以,sum的结果是0。
最后稍微改动了一下:
# include "stdio.h"
void main()
{
int n=1;
long k=1;
float sum=0;
float temp = 1;
while(temp>1e-6)
{
k *= n;
temp = 1.0/k;
sum += temp;
n++;
}
printf("%.2f\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9a26793
2011-08-03 · TA获得超过1110个赞
知道小有建树答主
回答量:927
采纳率:0%
帮助的人:848万
展开全部
while(sum>1e-6) 变成1.0/k>1e-6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lijun87119
2011-08-03 · 超过11用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:38.2万
展开全部
sum>1e-6 while的初始条件 sum=0 是否>1e-6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式