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

C++实现二维数组第一行求和运行出现异常结果问题求助

问题排查与修复方案

核心问题列表

  • 变量未初始化:sum作为局部变量没有赋予初始值,默认携带内存中的随机垃圾值,累加后结果必然异常。
  • 数组下标错误:C++中数组下标从0开始计数,你要取第一行数据应该用data[0],现有代码的data[1]取的是第二行数据。
  • 遍历范围错误:要计算整行总和,列遍历应该从下标0开始,现有代码从下标2开始只累加了每行的后3个元素,漏掉了前2个值。
  • 缺少文件读取校验:没有判断文件是否成功打开,若文件路径错误/不存在,数组会被填入随机值,也会导致结果异常。
  • 类型冗余:所有数据都是整数,用int类型存储sum即可,不需要用float。

修复后的完整代码

#include <iostream>
#include <fstream>
using namespace std;

void sumRow(){
    int data [10][5];
    int sum = 0; // 初始化sum为0
    ifstream f("datafile.txt");
    // 校验文件打开状态
    if (!f.is_open()) {
        cout << "文件打开失败,请检查文件路径是否正确" << endl;
        return;
    }
    for(int row = 0; row < 10; row++){
        for(int column = 0; column < 5; column++){
            f >> data[row][column];
        }
    }
    f.close();
    // 遍历第一行所有列求和
    for (int column = 0; column < 5;column++){
        sum += data[0][column];
    }
    cout << "第一行总和为:" << sum << endl;
}

int main() {
    sumRow();
    return 0;
}

结果验证

你提供的第一行数据为1 19 93 92 87,累加结果为292,运行修复后代码会输出该正确值。

内容的提问来源于stack exchange,提问作者Irsyad Mat Yaakob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:06:02