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

如何查找二维数组中最小值所在的具体行和列

定位二维数组最小值的行和列索引

我不需要找出二维数组里的最小值本身,只需要确定最小值所在的具体行和列位置。下面是我已经完成的可运行代码(已将提示文本改为中文,并补充了定位最小值位置的逻辑):

import java.util.Scanner;

public class MinPositionFinder {
    public static void main(String[] args) {
        Scanner dati = new Scanner(System.in);
        int[][] a;
        int n, m, i, j, minRow, minCol;

        // 输入行数(限制1-20)
        do {
            System.out.print("请输入行数(最大20):");
            n = dati.nextInt();
        } while (n < 1 || n > 20);

        // 输入列数(限制1-20)
        do {
            System.out.print("请输入列数(最大20):");
            m = dati.nextInt();
        } while (m < 1 || m > 20);

        // 初始化数组并输入元素,同时跟踪最小值位置
        System.out.println("请输入数组元素:");
        a = new int[n][m];
        // 默认第一个元素为最小值位置
        minRow = 0;
        minCol = 0;

        for (i = 0; i < n; i++) {
            for (j = 0; j < m; j++) {
                System.out.print("请输入元素[" + i + "][" + j + "]:");
                int v = dati.nextInt();
                a[i][j] = v;

                // 比较当前元素与当前最小值,更新位置
                if (a[i][j] < a[minRow][minCol]) {
                    minRow = i;
                    minCol = j;
                }
            }
        }

        // 打印输入的数组
        System.out.println("\n你输入的数组为:");
        for (i = 0; i < n; i++) {
            for (j = 0; j < m; j++) {
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }

        // 输出最小值的行和列位置
        System.out.println("\n最小值所在的行:" + minRow + ",列:" + minCol);
        dati.close();
    }
}

说明

  • 原代码仅实现了数组的输入与打印,补充逻辑后,在输入元素的过程中就会实时比较并更新最小值的位置,避免额外遍历一次数组。
  • 如果数组中存在多个相同的最小值,这段代码会返回第一个出现的最小值的行和列索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:20:16