请完成下列Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上最小,在该列上最大,也可能没有鞍点。数组大小为4行5列。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。

admin2009-01-15  40

问题 请完成下列Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上最小,在该列上最大,也可能没有鞍点。数组大小为4行5列。
   注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
       public class ex30_2 {
        public static void main(String[] args)  {
            int i, j, flag,m=4,n=5;
            int[] min=new int [4];
            int[] max=new int [5];
            int r[] []={{2,5,6,7,9},
                    {32,65,2,78,12},
                    {1,8,5,96,4},
                    {5,3,21,73,23}};
            flag=0;
            for (i=0; i<m; i++) {//获取元素在该行上最大
                 min=r [0];
                 for (j=1; j<n; j++)
                      if(r [j]<min)
                         ___________________;
            }
            for (j = 0; j <n; j ++ ) { //获取同一元素在该列上最大
                 max[j]=r[0] [j];
                 for(i=l;i<m;i++)
                     if(r [j]>max[j])
                         _______________________
           }
           for(i=0;i<m;i++)
               for(j=0;j<n;j++)
                   if(min==max[j]){
                      System.out.print("("+i+",  "+j+")  :  "+r [j]);
                      flag=1;
                   }
                   if(flag==0)
                       System.out.println("没有鞍点!");
           }
         }

选项

答案 min[i]=r[i][j] max[j]=r[i][j]

解析 本题主要考查二维数组和for循环语句。解题关键是首先找出每行中最小的元素放在min数组中,再求出每列中最大的元素放在max数组中,再对两个数组中的每个数进行比较,如果有相同的,则这个数就是鞍点。本题中,第1个空,将每行最小的元素写给min数组;第2个空,将每列中最大的元素写给max数组。
转载请注明原文地址:https://kaotiyun.com/show/Mhnp777K
0

最新回复(0)