各位大虾对于这个C程序在tc 和vc下的运行结果为什么不同啊

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:32:41
#include "stdio.h"
int JC(int n)
{
if(n==0||n==1)
return 1;
else
return n*JC(n-1);
}
main()
{ int n,i;
double k,temp=1;
for(n=0;1;n++)
if(JC(n)<=0.00001)
break;
printf("n=%d\n",n);
i=0;
while(i<=n)
{temp=temp+(1.0/JC(i));
i++;}
printf("e=%lf\n",temp);
}
上面的是我自己写的解决e=2+1/1!+1/2!+...+1/n!

等我看看啊!我装TC呢
TC输出
n=8
e=3.718214
VC输出
n=17
e=3.718282

VC
JC=1
JC=1
JC=2
JC=6
JC=24
JC=120
JC=720
JC=5040
JC=40320
JC=362880
JC=3628800
JC=39916800
JC=479001600
JC=1932053504
JC=1278945280
JC=2004310016
JC=2004189184
JC=-288522240
n=17
e=3.718282

TC
JC=1
JC=1
JC=2
JC=6
JC=24
JC=120
JC=720
JC=5040
JC=-25216
n=8
e=3.718214

我加了一句printf("JC=%d\n",JC(n)); 输出的。可能是TC里的和VC的int长度不同。