#include<stdio.h>
int main()
{
int chengji=1,n=1,a=2;
while(n<=50)
{
n=n+1;
chengji=chengji*a;
a=a+2;
}
printf("%d\n",chengji);
return 0;
}
数值太大越过了int值的范围,对成绩定义使用double型试试
int型:
超出了int类型存储范围。int chengji=1改为long long chengji=1类型。
#include<stdio.h>
int main()
{
long long chengji=1,n=1,a=2;
while(n<=30)
{
n=n+1;
chengji=chengji*a;
a=a+2;
}
printf("%lld\n",chengji);
return 0;
}
因为中间溢出了,所以后面全是0
阶乘的增长速度极快,用int基本装不下
#有帮助望采纳
#include <stdio.h>
int main()
{
int chengji = 1, n = 1, a = 2;
while (n <= 50)
{
n = n + 1;
chengji = chengji * a;
printf("%d\n",chengji);
a = a + 2;
}
printf("%d\n", chengji);
return 0;
}
chengji的数值超出了int类型的范围,把chengji的类型改成double类型
int有数值范围,好似一个杯子,只能装这么点数
float或者是long如同大桶,可以容纳更大的数字
源码中的变量申明只要把“int”的地方都改成改为“long”或者是“float”应该就行了