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

Java二维数组按列求和输出结果与预期不符问题排查

二维数组按列求和结果异常问题分析

错误原因

核心问题是输入读取顺序和输入的实际排布不匹配:
你给出的输入是按行排列的,3行4列的数组输入依次是第0行全部元素、第1行全部元素、第2行全部元素,但你最初的代码采用列优先的顺序读取输入,导致数值填充完全错位,求和自然出错。

我们可以对应输入的数字序列验证:
输入的数值按顺序排列为:1 2 3 4 4 5 6 5 7 8 9 5
原代码的读取逻辑:

  • 第0列读取前3个数字:1、2、3,求和得6
  • 第1列读取接下来3个数字:4、4、5,求和得13
  • 第2列读取接下来3个数字:6、5、7,求和得18
  • 第3列读取最后3个数字:8、9、5,求和得22

和你得到的实际输出完全一致,就是读取顺序错误导致的。

修正方案

你提供的修正代码逻辑是正确的,分两步执行:

  1. 先按行优先的顺序读取所有输入,完整填充二维数组,保证数组存储内容和输入一致
// 第一步:行优先读取输入填充数组
for(int row =0; row<m; row++) { 
    for (int col=0;col<n; col++) {
        array[row][col] = sc.nextInt();                         
    }                               
}
  1. 再单独遍历每一列,逐行累加该列的所有元素得到列和后输出
// 第二步:按列遍历求和输出
for(int col =0; col<n; col++) { 
    int Sum = 0; 
    for (int row=0;row<m; row++) {
        Sum+=array[row][col];               
    }           
    System.out.println(Sum);            
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:39:03