始不垂翅 发表于 2020-9-28 11:11:33

求阶乘序列前N项和

#include <stdio.h>
int main()
{
        int i,k,sum=1,result,n;
        scanf("%d",&n);
       
        for(k=1;k<=n;++k)
        {
                for(i=1;i<=k;++i)
                {
                        sum*=i;
                }
                result = result + sum;
                sum=1;
        }
        printf("%d",result);
        return 0;
}
{:10_266:} 求助大佬们

LuLD 发表于 2020-9-28 11:28:08

result = result + sum;

result这个变量需要初始值,才可以参与运算

int i,k,sum=1,result,n;

在第一句这儿可以将result 初始化一下
如 result=0;

始不垂翅 发表于 2020-9-28 11:47:58

LuLD 发表于 2020-9-28 11:28
result = result + sum;

result这个变量需要初始值,才可以参与运算


啊这……不设置初始值他自己就是随机数么{:10_277:}

LuLD 发表于 2020-9-28 13:31:03

始不垂翅 发表于 2020-9-28 11:47
啊这……不设置初始值他自己就是随机数么

以下是我个人理解仅供参考:
在声明变量的时候 会在栈区开辟空间,
如果没初始化,这段空间如果之前有用过的,数据就会有,
没有用过的那就是未知的,
而并不是 你上文说的 随机数,
不管有没有值,最终结果肯定不是你想要的值,

所以,不管是全局变量,还是局部变量,建议 变量都做 初始化

始不垂翅 发表于 2020-9-28 16:39:22

LuLD 发表于 2020-9-28 13:31
以下是我个人理解仅供参考:
在声明变量的时候 会在栈区开辟空间,
如果没初始化,这段空间如果之前有 ...

好的谢谢辣
页: [1]
查看完整版本: 求阶乘序列前N项和