这个程序哪有错,运行不了

2025-01-20 07:19:19
推荐回答(1个)
回答1:

while(i!=1)
t*=i--;
这里,i是循环变量,在循环里是不能轻易改动循环变量的。应该改成
int j=i;
while (j!=1) t*=j--;
或者干脆写成
for (int j=i; j!=1; j--) t*=j;

另外,你这个程序还有一点写得不好。你是利用1 + 1/2! + 1/3! + ... 算e-1吧。那个阶乘你用一个int t来存,当数稍大一点的时候就溢出了。不如直接用double m(初值为1)去依次除以1,2,3,...。