为了账号安全,请及时绑定邮箱和手机立即绑定

是不是因为不同编译器的标准不同?

为什么我的代码在慕课网有效,在终端上却有问题(值很大)?我用codeblocks编译的。

#include <stdio.h>


int Getsum(int score[])                               //计算总分的函数

{

    int i,sum;

    for(i=0;i<10;i++)

    {

        sum+=score[i];

    }

    return sum;

}

int main()

{

    int sum;

    int score[]={67,98,75,63,82,79,81,91,66,84};

    sum  = Getsum(score);

    printf("总分:%d",sum);

    return 0;

}

http://img1.sycdn.imooc.com//54d8366f00011fd204650110.jpg

正在回答

3 回答

是因为你的sum没有附初值。这样的话,不同环境可能分配的未知内存上的数未知。。

1 回复 有任何疑惑可以回复我~
#1

为爱逞能 提问者

非常感谢!
2015-02-10 回复 有任何疑惑可以回复我~

局部定义中,int a 是动态局部变量,不赋值,系统就会随机赋值;static int a是静态局部变量,若不赋值,系统会赋初始值0;

0 回复 有任何疑惑可以回复我~

正如楼上所说,函数中的local变量如果没有初始化的话,其值是不确定的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

是不是因为不同编译器的标准不同?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信