public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] Subject_name = { "국어", "영어", "수학", "총점" };
System.out.print("반의 개수는 몇개입니까? : ");// 반 입력
int cc = sc.nextInt();// 반 개수
int[] nc = new int[cc];// 각반 학생 수
System.out.println();// 띄어쓰기
// 배열 참조 변수 생성
String[][] name = new String[cc][]; // 이름
int[][][] score = new int[cc][][];// 몇반,어떤학생의,어떤과목의점수?
float[][] avg = new float[cc][];
// 객체생성
for (int i = 0; i < cc; i++) {
System.out.print(i + 1 + "반의 인원수는 몇명입니까? : ");
// 인원수에 맞춰 배열 할당
nc[i] = sc.nextInt(); // i반의 학생수
avg[i] = new float[nc[i]];// i반의 학생수로 avg 2차 배열 선언
score[i] = new int[nc[i]][Subject_name.length];// i반의 학생수와 과목수 2차배열 객체선언 3차배열은 과목수로 고정값
name[i] = new String[nc[i]];
}
System.out.println();// 띄어쓰기
// 입력
for (int c = 0; c < cc; c++) {
for (int k = 0; k < name[c].length; k++) {// 인원수가 3명이면 3번반복
System.out.print(c + 1 + "반 " + (k + 1) + "번 이름을 입력하시오 : ");
name[c][k] = sc.next();
for (int i = 0; i < score[c][k].length - 1; i++) {
System.out.print(Subject_name[i] + "점수를 입력하시오 : ");
score[c][k][i] = sc.nextInt();
score[c][k][score[c][k].length - 1] += score[c][k][i];
}
System.out.println();// 띄어쓰기
avg[c][k] = score[c][k][score[c][k].length - 1] / (Subject_name.length - 1); // 총점 / 과목수
}
}
System.out.println();// 띄어쓰기
// 출력
for (int c = 0; c < cc; c++) {
for (int k = 0; k < name[c].length; k++) {// 반별 출력
System.out.print(c + 1 + "반 => " + "이름 : " + name[c][k]);
for (int i = 0; i < score[c][k].length; i++) {// 학생별 출력
System.out.print(", " + Subject_name[i] + " : " + score[c][k][i]);
}
System.out.println(", 평균 : " + avg[c][k]);
}
System.out.println("");// 띄어쓰기
}
}