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

C++如何部分填充数组?嵌套循环超出用户输入限制如何解决?

C++二维数组部分填充异常修复方案

核心问题原因

内层for循环的终止条件书写错误,误将列变量j写成了行变量i,导致只要行索引i小于用户输入的列数上限,内层循环就会无限执行,j持续自增最终触发数组越界,程序超出填充限制持续运行。

修复后的填充代码

// 修正后可正常工作的部分填充逻辑
for (int i = 0; i < row; i++) 
{
    // 内层循环判断条件修改为j < col,和列索引自身做比较
    for (int j = 0; j < col; j++) 
    {
        cout << "Enter a number for row " << i << " and column " << j << endl;
        cin >> num;
        userFilledArray[i][j] = num;
    }
}

其他可优化的代码问题

  • 输入校验规则不匹配:你提示用户输入1-10范围内的行列数,但当前校验条件row < 0 || row >10允许输入0值,会导致后续填充流程直接跳过,建议修改校验条件为row <1 || row>10,列的校验规则同步修改。
  • 全局变量冗余:row、col、userFilledArray均无需定义为全局变量,移动到main函数内部即可,减少全局变量的意外修改风险。
  • 缺失函数实现:代码中调用的getTotal函数尚未实现,补全时注意仅遍历前row行、前col列的有效填充区域,不要遍历整个10*10的数组空间,避免把未初始化的脏值计入总和。

内容的提问来源于stack exchange,提问作者EMAN-GAMING

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:15:01