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

Java二维数组列最大值打印程序实现技术咨询

解决二维表格每列最大值的问题

嘿,我看了你的代码,发现几个小问题导致它没法正确输出每一列的最大值,咱们一步步来修正:

你的代码里的问题点

  • 数组维度搞反了:你输入的是col(列数)和row(行数),但创建数组时写的是int[][] table = new int [col][row];,这会把列当成了行的维度。Java里二维数组是table[行索引][列索引],所以正确的数组初始化应该是new int[row][col]。
  • max初始化时机错误:你在读取元素前就把max设为table[i][0],这时候这个位置还没被赋值,默认是0,如果列里的数都是负数,结果就会错。而且你现在的逻辑是在读取元素的同时找最大值,这样很容易混乱,最好先把所有数据都读进数组,再找最大值。
  • 遍历逻辑不对:你现在的外层循环是列数,内层是行数,但结合错误的数组维度,实际是在处理“行”的最大值,而不是列的。

正确的实现代码

import java.util.Scanner;

public class MaxColumnElement {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 先输入行数,再输入列数(符合常规的表格认知:行×列)
        System.out.print("请输入行数: ");
        int row = sc.nextInt();
        System.out.print("请输入列数: ");
        int col = sc.nextInt();
        
        // 初始化二维数组:row行,col列
        int[][] table = new int[row][col];
        
        // 第一步:先把所有数据读入数组
        System.out.println("请输入表格数据(按行输入):");
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                table[i][j] = sc.nextInt();
            }
        }
        
        // 第二步:遍历每一列,找出该列的最大值
        for (int j = 0; j < col; j++) {
            // 初始化max为当前列第一行的元素,避免负数场景错误
            int max = table[0][j];
            // 遍历当前列的所有行
            for (int i = 0; i < row; i++) {
                if (table[i][j] > max) {
                    max = table[i][j];
                }
            }
            System.out.println("第" + (j + 1) + "列的最大值是: " + max);
        }
        
        sc.close();
    }
}

代码解释

  1. 输入与数组初始化:先明确行数和列数,创建对应维度的二维数组,确保table[i][j]代表第i行第j列的元素,符合日常对表格的认知。
  2. 读取数据:先把所有表格数据完整读入数组,这样后续找最大值时可以自由遍历,不会受输入顺序影响。
  3. 找列最大值:外层循环遍历每一列,内层循环遍历该列的所有行,每次比较更新最大值,最后输出该列的最大值。
  4. 边界处理:把max初始化为当前列的第一个元素,避免了负数场景下的错误(比如列里全是负数,初始0就会比所有元素大,导致结果错误)。

如果你坚持要按你原来的输入顺序(先列数再行数),只需要调整输入顺序和数组初始化的对应关系就行,但建议按行×列的逻辑来,更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 10:53:11