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

C++数组求和函数simpleArraySum编译失败运行异常问题求助

代码问题修复说明

核心错误点

  • simpleArraySum函数中循环终止条件写死为i < 11,但实际传入的数组长度由输入动态决定:你使用的测试数组仅包含6个元素,访问超出数组实际长度的下标会触发未定义行为,导致结果错误、程序崩溃或编译运行异常。
  • 固定写死的循环上限不具备通用性,只要传入数组长度不等于11,计算结果都会出错。

修复方案

仅需修改simpleArraySum函数的循环条件,使用vector自带的size()方法获取数组实际长度即可,修改后的函数代码如下:

int simpleArraySum(vector<int> ar) {
    int sum = 0;
    for (int i = 0; i < ar.size(); i++) {
        sum += ar[i];
    }
    return sum;
}

可选简化写法

如果使用C++11及以上版本,还可以用更简洁的范围for循环实现:

int simpleArraySum(vector<int> ar) {
    int sum = 0;
    for (int num : ar) {
        sum += num;
    }
    return sum;
}

也可以引入<numeric>头文件,调用标准库的accumulate方法直接完成求和:

// 注意需要先引入头文件 #include <numeric>
int simpleArraySum(vector<int> ar) {
    return accumulate(ar.begin(), ar.end(), 0);
}

你原代码的其余部分逻辑正常,替换上述simpleArraySum实现后即可正常运行,测试用例输入1,2,3,4,10,11将正确返回求和结果31。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:36:10