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

Java二维矩阵打印行求和、列求和功能实现问题求助

问题原因

  • 列求和的数组索引写反:外层循环遍历列下标i,内层遍历行下标j,取值应该是twoD[j][i],原写法会导致数组越界或计算结果错误
  • 缺少行求和计算、行末总和输出逻辑,也没有打印矩阵底部的分隔线
  • 空格填充不规范,用格式化输出可以更便捷的实现对齐效果

修正后完整代码

package Matrix;

import java.util.Scanner;
public class Matrix
{
    public static void main(String[] args) {
        System.out.print("Enter 2D array size : ");
        Scanner sc=new Scanner(System.in);
        int rows=sc.nextInt();
        int columns=sc.nextInt();

        System.out.println("Enter array elements : ");    
         
        int twoD[][]=new int[rows][columns];

        // 读取矩阵元素
        for(int i=0; i<rows;i++) {            
            for(int j=0; j<columns;j++) {
                twoD[i][j]=sc.nextInt();
            }
        }
        System.out.print("\n\n");

        // 逐行输出矩阵+行总和
        for(int []x:twoD){
            int rowSum = 0;
            for(int y:x){
                // 左对齐占6个字符宽度,保证对齐
                System.out.printf("%-6d", y);
                rowSum += y;
            }
            System.out.printf("=   %d%n", rowSum);
        }

        // 打印分隔线
        System.out.println("___________");

        // 计算输出列总和
        for(int i=0;i<columns;i++) {
            int colSum = 0;
            for(int j=0;j<rows;j++) {
                // 索引修正,行在前列在后
                colSum += twoD[j][i];
            }
            System.out.printf("%-6d", colSum);
        }
    }  
}

输入3行3列的矩阵元素5 9 8 3 8 2 4 3 9,即可输出你预期的格式效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:06:05