求如何编程这一个题(JAVA)

2 有5名学生学年考试成绩如下表所示:
语文 数学 英语 体育
S1 80 75 78 93
S2 67 87 98 65
S3 86 72 60 76
S4 76 80 76 63
S5 82 70 90 67
编写程序,使用二维数组存储学生成绩,并完成下列操作:
(1) 计算并输出每名学生的平均分。
(2) 打印输出每科最高分的学生姓名和分数。

public class CSDNQ7913493 {
    public static void main(String[] args) {
        int[][] scores = {{80, 75, 78, 93}, {67, 87, 98, 65}, {86, 72, 60, 76}, {76, 80, 76, 63}, {82, 70, 90, 67}};
        String[] names = {"S1", "S2", "S3", "S4", "S5"};

        double[] avgScores = new double[5];
        for (int i = 0; i < scores.length; i++) {
            int sum = 0;
            for (int j = 0; j < scores[i].length; j++) {
                sum += scores[i][j];
            }
            avgScores[i] = sum / 4.0;
            System.out.println(names[i] + " 的平均分为:" + avgScores[i]);
        }

        for (int i = 0; i < scores[0].length; i++) {
            int maxScore = scores[0][i];
            String maxName = names[0];
            for (int j = 1; j < scores.length; j++) {
                if (scores[j][i] > maxScore) {
                    maxScore = scores[j][i];
                    maxName = names[j];
                }
            }
            System.out.println("在 " + (i + 1) + " 科目中,最高分为:" + maxScore + ",是 " + maxName + " 获得的");
        }
    }
}