You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言计算数组元素总和时返回异常大负数问题求助

问题根源

你的代码错误和编译器逻辑无关,属于C语言局部自动变量未初始化的典型问题:

  • 你在代码中定义的int sum1, sum2;是main函数内的局部自动变量,C语言标准明确规定这类变量不会被自动初始化为0,创建时的初始值是对应内存地址中残留的随机垃圾值。
  • 你观察到"第一个读取的数组求和结果始终正常",只是恰好第一个求和变量对应的内存残留值碰巧是0而已,第二个求和变量对应的内存残留值是负数,累加数组元素后就会出现你遇到的大负数输出。

修复方案

仅需要修改一处代码:将求和变量的定义行修改为带初始化的格式即可:

int sum1 = 0, sum2 = 0;

另外你代码里存在一处小笔误,第二个数组的输入提示打印的是Please input an integer into the first second:,建议修改为Please input an integer into the second list:避免用户困惑。

修改后运行你给出的测试用例,会正确输出sum1=5、sum2=10,比较逻辑也会正常判定第二个数组总和更大。


内容的提问来源于stack exchange,提问作者Stoutishhat90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:27:02