请问这个c语言程序为什么就是没有结果?

来源:百度知道 编辑:UC知道 时间:2024/05/07 19:37:52
求1!+2!+3!+......+100!= 的程序?

#include "stdio.h"
main()
{
int n1=1;
int n2;
int i=1;
int sum;
do
{
n2=n1*i;
sum=n1+n2;
n1=n2;
i++;
}while(i<=100);
printf("%d",sum);

}

不是没有结果,是溢出了

100!为:
9.3326215443944152681699238856267e+157

int当然溢出了,用数组来存储吧

溢出了无数次了

早就溢出了。。。

SUM定义的是INT整形,16位的最大值为:32767,32位的自己算一下是多少?将SUM定义为:double类型试一下,或者将100改为10,就可以看到了.