帮我看一下这个程序有什么问题,为什么运行结果是0

2025-01-31 12:39:08
推荐回答(3个)
回答1:

溢出了 ···

#include
void main ()
{
long int n,s;
n=1;
s=1;
while(n<=100)
{
s*=n;
n++;
printf("s=%ld\n",s);
}
printf("1*2*3*4+……*100=%d\n",s);
}
s=1
s=2
s=6
s=24
s=120
s=720
s=5040
s=40320
s=362880
s=3628800
s=39916800
s=479001600
s=1932053504
s=1278945280
s=2004310016
s=2004189184
s=-288522240
s=-898433024
s=109641728
s=-2102132736
s=-1195114496
s=-522715136
s=862453760
s=-775946240
s=2076180480
s=-1853882368
s=1484783616
s=-1375731712
s=-1241513984
s=1409286144
s=738197504
s=-2147483648
s=-2147483648

回答2:

100!数值太大,超出long int 范围

回答3:

这个应该是长度不够 溢出了 但是结果为什么是0 可能是纯属巧合