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

# 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);
}

}

为啥子没有运行结果,怎么错了!运行不正确。。求解。。希望能告之我哪错了。。

判断条件错了
while(sum>1e-6)
开始sum被初始化为0,直接就不满足while条件,while根本不执行
应该用while(1.0/k >1e-6)
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-05-23
首先:%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);
}
第2个回答  2011-08-03
while(sum>1e-6) 变成1.0/k>1e-6
第3个回答  2011-08-03
sum>1e-6 while的初始条件 sum=0 是否>1e-6
相似回答