请问这个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);
}
#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,就可以看到了.