你的程序写得太过于复杂了。 从简到繁易,从繁化简难。
另外++一般是用于整型数,如果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;
}
该用整型变量的,不要轻易使用浮点变量。另外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;
}
可能是i的循环次数不够,也有可能是内部的循环没有加大括号