9월 10일 자바 마지막 문제 선생님 풀이 -> 내일 시험볼것임.

 package d_array;


public class Score {


public static void main(String[] args) {

/*

* 우리반 모두의 국어, 영어, 수학, 사회, 과학, Oracle, Java 점수를

* 0 ~ 100까지 랜덤으로 생성해주시고, 아래와 같이 출력해주세요.

* 국어 영어 수학 사회 과학 Oracle Java 합계 평균 석차

* 홍길동 90 90 90 90 90 90 90 630 90.00 1

* 홍길동 90 90 90 90 90 90 90 630 90.00 1

* 홍길동 90 90 90 90 90 90 90 630 90.00 1

* 홍길동 90 90 90 90 90 90 90 630 90.00 1

* 홍길동 90 90 90 90 90 90 90 630 90.00 1

* 과목합계 450 450 450 450 450 450 450

* 과목평균 90.00 90.00 90.00 90.00 90.00 90.00 90.00

*/

String[] names = {"김건호", "김선중", "이수훈", "오제현", "박소영"

// , "유동기", "김수연", "이수정", "유승종", "김도영"

// , "전영헌", "김준혁", "이건영", "송하섭", "이예슬"

, "백수진", "이연승", "최동준", "김강영", "김우성"

, "황시연", "김경찬", "김보연", "김형석", "안용현"};

String[] subjects = {"국어", "영어", "수학", "사회", "과학", "Oracle", "Java"};

int[][] score = new int[names.length][subjects.length];

int[] nameSum = new int[score.length];

float[] nameAvg = new float[score.length];

int[] subSum = new int[subjects.length];

float[] subAvg = new float[subjects.length];

int[] rank = new int[score.length];

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

for(int j = 0; j < score[i].length; j++){

score[i][j] = (int)(Math.random() * 101);

}

}

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

for(int j = 0; j < score[i].length; j++){

nameSum[i] += score[i][j];

}

}

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

nameAvg[i] = Math.round((float)nameSum[i] / subjects.length * 100) / 100f;

}

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

for(int j = 0; j < score.length; j++){

subSum[i] += score[j][i];

}

}

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

subAvg[i] = Math.round((float)subSum[i] / score.length * 100) / 100f;

}

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

rank[i] = 1;

for(int j = 0; j < score.length; j++){

if(nameSum[i] < nameSum[j]){

rank[i]++;

}

}

}

for(int i = 0; i < nameSum.length - 1; i++){

int min = i;

for(int j = i + 1; j < nameSum.length; j++){

if(nameSum[j] > nameSum[min]){

min = j;

}

}

int[] temp = score[i];

score[i] = score[min];

score[min] = temp;

int temp2 = nameSum[i];

nameSum[i] = nameSum[min];

nameSum[min] = temp2;

float temp3 = nameAvg[i];

nameAvg[i] = nameAvg[min];

nameAvg[min] = temp3;

int temp4 = rank[i];

rank[i] = rank[min];

rank[min] = temp4;

String temp5 = names[i];

names[i] = names[min];

names[min] = temp5;

}

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

System.out.print("\t" + subjects[i]);

}

System.out.println("\t합계\t평균\t석차");

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

System.out.print(names[i] + "\t");

for(int j = 0; j < score[i].length; j++){

System.out.print(score[i][j] + "\t");

}

System.out.println(nameSum[i] + "\t" + nameAvg[i] + "\t" + rank[i]);

}

System.out.print("과목합계\t");

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

System.out.print(subSum[i] + "\t");

}

System.out.println();

System.out.print("과목평균\t");

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

System.out.print(subAvg[i] + "\t");

}

}


}

댓글