使用随机数得到的数组求最大值有的对有的不对是怎么回事

问题遇到的现象和发生背景

求三个班的成绩的最大值

问题相关代码,请勿粘贴截图
public class Java01 {
    public static void main(String[] args) {
        int[][] ban=new int[3][10];
        for(int i=0;i<ban.length;i++) {
            for(int j=0;j<10;j++) {
                ban[i][j]=(int)(Math.random()*100);
            }
        }
        int Class=33;
        for(int i=0;i<ban.length;i++) {
            System.out.print(Class+"班的同学的成绩为:");
            Class++;
            for(int j=0;j<10;j++) {
                System.out.print(ban[i][j]+"\t");
            }
            System.out.print("\n");
        }
        int[] max=new int[3];
        int temp=0;
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<10;j++) {
                if(ban[i][j]>temp) {
                    temp=ban[i][j];
                }
            }
            max[i]=temp;
        }
        System.out.print("三个班的最高成绩为:");
        for(int i=0;i<3;i++) {
            System.out.print(max[i]+"\t");
        }
    }
}

运行结果及报错内容

求出的结果有的对有的不对

我的解答思路和尝试过的方法
我想要达到的结果

img


希望可以帮到你

img