二维数组中输出行的最大值与列的最小值

定义一个4行3列的二维数组,数组的每一行依次表示一个同学的(大学英语、JAVA程序设计、数据库原理)3门成绩。如:数组中有一行的元素为:76,87,92,就表示这位同学的大学英语的成绩是76,JAVA程序设计的成绩是87,数据库原理的成绩是92。编程输出每位同学分数的最高分,以及每一门科目的最低分。

代码部分

        double[][] arr = new double[][]{{76, 87, 92}, {62, 29, 57}, {65, 82, 34}, {62, 52, 74}};
        double englishMin = Integer.MAX_VALUE; //大学英语
        double javaMin = Integer.MAX_VALUE; //JAVA程序设计
        double sqlMin = Integer.MAX_VALUE; //数据库原理

        for (int i = 0; i < arr.length; i++) {

            //最高分
            int max = 0;
            for (int j = 0; j < 3; j++) {

                //求出每个同学最高分
                if (arr[i][j] > arr[i][max]) {
                    max = j;
                }

                //求出每科最低分
                switch (j) {
                    case 0:
                        if (arr[i][j] < englishMin) {
                            englishMin = arr[i][j];
                        }
                        break;
                    case 1:
                        if (arr[i][j] < javaMin) {
                            javaMin = arr[i][j];
                        }
                        break;
                    case 2:
                        if (arr[i][j] < sqlMin) {
                            sqlMin = arr[i][j];
                        }
                        break;
                }

            }
            System.out.println(String.format("同学%s最高分:%s", i, arr[i][max]));
        }

        System.out.println("大学英语最低分:" + englishMin);

        System.out.println("JAVA程序设计:" + javaMin);

        System.out.println("数据库原理:" + sqlMin);

运行结果

同学0最高分:92.0
同学1最高分:62.0
同学2最高分:82.0
同学3最高分:74.0
大学英语最低分:62.0
JAVA程序设计:29.0
数据库原理:34.0

这是我的理解,如有问题可以评论

package helloworld;

import java.io.*;

public class HelloWorld{

public static void main(String[] args) throws Exception{
 int arr[][]=new int[3][4];
 int i=0,j=0,max=0,min=0,temp=0;

 // 获取用户输入
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

 for(i=0;i<4;i++){
   for(j=0;j<3;j++){
    String str = reader.readLine();
    arr[i][j] = Integer.valueOf(str);
   }
 }



 for(i=0;i<4;i++){
   for(j=0;j<3;j++){
    temp = arr[i][j];
    System.out.printf("%d ",temp);
    if(temp>=max){
       max=temp;
    }
   }
    System.out.printf("===> max_score : %d",max);
    System.out.println();
 }

  System.out.println();

  for(i=0;i<3;i++){
    min=arr[0][i];
    for(j=0;j<4;j++){
       temp=arr[j][i];
       System.out.printf("%d  ",temp);
       if(temp<=min){
         min=temp;
       }
    }
        System.out.printf("===> min_score : %d",min);
    System.out.println();
  }

}

}