C语言编写程序,求e得值,用for循环,计算前五十项。下面是我写的,输出结果不对,实在想不出来,求解。

2025-03-04 23:21:06
推荐回答(3个)
回答1:

你的程序写得太过于复杂了。 从简到繁易,从繁化简难。

另外++一般是用于整型数,如果double 建议用 +=1

#include

#include

int main() {

int i;

double e=1.0, k=1.0;

for(i=1;i<50;++i) {

k*=i;

e+=1.0/k;

}

printf("e=%lf\n",e);

return 0;

}


回答2:

该用整型变量的,不要轻易使用浮点变量。另外k每次都需要重新赋值
#include
int main()
{
int i, n;
double e, k, j;
e = 1.0;
for (i = 1; i < 50; i++)
{
k = 1;
for (n = 1; n <= i; n++)
k = k * n;
j = 1.0 / k;
e += j;
}
printf("e=%lf\n", e); // e = 2.71828...

return 0;
}

回答3:

可能是i的循环次数不够,也有可能是内部的循环没有加大括号