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

C++数组元素求和代码异常,替换下标后仍无法得到正确结果

数组求和代码问题排查

问题点逐个拆解:

  • 数组下标完全用错了:
    你输入元素和求和的循环里,一直用a[n]访问数组,但数组的合法下标范围是0到n-1,a[n]属于越界访问内存,不仅存不对数据,还会导致未定义行为。循环变量i就是用来遍历下标的,必须改成a[i]。

  • sum变量没初始化:
    int sum;只声明了变量但没给初始值,它的初始值是内存里的随机垃圾值,累加的时候会把这个随机值也算进去,结果肯定不对,必须初始化为0。

  • 可选优化:改用标准C++容器:
    int a[n];是C语言的变长数组特性,不属于C标准(部分编译器会做扩展支持),如果要写标准C代码,建议用std::vector<int> a(n);,记得加上头文件<vector>。

修正后的代码:

//Adding all the Elements in an array and displaying their sum
#include<iostream>
#include<vector>

using namespace std;

int main() {
    int n;
    cout << "Enter the number of Elements in an array: ";
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += a[i];
    }
    cout << "Sum of array elements: " << sum << endl;
}

运行测试:输入2,再输入1和5,会输出Sum of array elements: 6,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:17:43