public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] grades = new int[2][];
int count = 0;
for (int i=0;i<3;i++){
System.out.println("请输入第"+(i+1)+"个班级的成绩");
int total =0;
for (int j = 0; j < 4; j++) {
System.out.print("第"+(j+1)+"个学员的成绩:");
grades[i][j]=sc.nextInt();
if (grades[i][j]>85){
count++;
}
total += grades[i][j];
}
double avg = total/grades[i].length;
System.out.println("第"+(i+1)+"个班级参赛学院的平均分是:"+avg+"\n");
}
System.out.println("成绩85分以上的学员人数为:"+count);
}
你只初始化了2行,没有列呀
你要在循环里先给列初始化,才能给列赋值
这明显越界了
grades[i][j]=sc.nextInt(); 这里空指针了。还有你new的数组size是2,你循环是<3,你改完这个问题后面还会有个数组越界。
java 中不建议使用二元数组,你直接用两个list不好么。