【C】求一维数组内元素的总和时出现奇怪的结果?

发布于 2022-09-02 00:39:26 字数 578 浏览 15 评论 0

直接上代码:

#include <stdio.h>
int sum_num(int arr[],int length){
    int i,sum;
    for(i = 0;i < length;i++){
        sum += arr[i];
        printf("sum为%d\n",sum); 
    }
    return sum;
} 
int main(){
    int arr[]={80,70,66,35,95,78,58,67,87,90};
    int len=sizeof(arr)/sizeof(arr[0]);
    printf("总分是%d\n",sum_num(arr,len));
    return 0;
}

为什么输出的结果是这样的:

clipboard.png

请问为什么是输出这个结果?用的编辑器是dev-C++!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦回梦里 2022-09-09 00:39:26

你初始化了?

#include <stdio.h>
int sum_num(int arr[],int length){
    int i,sum=0;
    for(i = 0;i < length;i++){
        sum += arr[i];
        printf("sum为%d\n",sum); 
    }
    return sum;
} 
int main(){
    int arr[]={80,70,66,35,95,78,58,67,87,90};
    int len=sizeof(arr)/sizeof(arr[0]);
    printf("总分是%d\n",sum_num(arr,len));
    return 0;
}
养猫人 2022-09-09 00:39:26

sum是栈上的未初始化变量,它的值是随机的,有可能是0也有可能不是0。初始化为0就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文