⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dort.java

📁 这是java的答案
💻 JAVA
字号:
//【习2.26】  求二维数组的鞍点。

public class Dort
{
    public static void main(String args[]) 
    {
        int[][] mat = {{1,2,3},{4,5,6},{7,8,9}};
//        int[][] mat = {{9,8,7},{6,5,4},{3,2,1}};
//        int[][] mat = {{1,2,9},{4,5,6},{7,8,3}};
        
        for (int i=0;i<mat.length;i++)                     //输出二维数组元素
        {
            for (int j=0;j<mat[i].length;j++)              //i、j是行、列下标
                System.out.print("  "+mat[i][j]);
            System.out.println();
        }

        boolean find = false;                              //找到鞍点标记
        int row=0;                                         //第1行下标
        int max=0;                                         //记录当前行最大值的列下标
        while (!find && row<mat.length)
        {
            max=0;                                         //初始设每行第1列值最大
            for (int j=1;j<mat[row].length;j++)            //在row行上找最大值
                if (mat[row][j]>mat[row][max])             //mat[row][max]为该行最大值
                    max = j;

            boolean yes = true;                            //再判断mat[row][max]是否在列上最小
            int j=0;
            while (yes && j<mat.length)
            {
                if (j!=row && mat[j][max]<mat[row][max])   //在列上找到更小值,则不是鞍点
                    yes = false;
                j++;
            }
            
            if (yes)
                find = true;
            else
                row++;
        }
        
        if (find)
            System.out.println("The dort:  "+mat[row][max]);
        else
            System.out.println("The dort:  null");
    }
}

/*
程序运行结果如下:
   1   2   3
   4   5   6
   7   8   9
The dort : 3

   9   8   7
   6   5   4
   3   2   1
The dort : 3

   1   2   9
   4   5   6
   7   8   3
The dort : null

*/        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -