C程 很好奇这个答案是怎么来的

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:49:00
想求个阶乘
我知道自己错在哪了 但这样得到的答案是85860 奇怪 最大不是32767吗?
#include<stdio.h>
main()
{
int d=1,sum;
for(;d<=7;)
{
sum=sum*d;
d++;
}
printf("%d\n",sum);
getchar();
}
我知道自己的错误 我不明白的是85860怎么来的

那乱码又是怎么来的?是不是有个算法

85860是乱码,一般定义变量的时候都初始化

sum没有初始化。你的for循环中的sum是随机赋的值
你想求7的阶乘吧?!
sum初始化为1就OK了。

那个是乱码
要初始化sum
int sum = 0;

sum没有初始值