상세 컨텐츠

본문 제목

[JAVA 입문 07] - 다차원 배열 예제

JAVA

by 코딩순이 2021. 3. 3. 20:52

본문

package Practice;

public class Score2 {

	public static void main(String[] args) {
		     
		// 변수 선언
		String[] names = {"김병수","곽명훈","김나위","김성현","김영광","김정명","김찬미","김현민","김현성",
		      				"류창현","맹세희","배병주","설동비","양규진","여지연","오태훈","이기정","이상훈",
		            			"이재헌","이치우","전민주","조기범","조영현","조항민","최진우"}; // 25
		String[] subjects = {"국어","영어","수학","사회","과학","Oracle","Java"}; // 7
		int[][] scores = new int [names.length][subjects.length]; // [25][7]
		      
		// 2차원 배열에 점수 채워넣기
		for (int i = 0; i < names.length; i++) { // 25
		   for (int j = 0; j < subjects.length; j++) { // 7
		      scores[i][j] = (int)(Math.random() * 101);
		   }
		}
		      
		// 개인 합계 & 평균
		int[] nameSum = new int[names.length]; // 25
		double[] nameAvg = new double[names.length]; //25
		      
		for (int i = 0; i < names.length; i++) { // 25
		 	for (int j = 0; j < subjects.length; j++) { // 7
		       nameSum[i] += scores[i][j]; 
		    }
		       nameAvg[i] = Math.round((double)nameSum[i] / subjects.length * 100) / 100.0;
		}
		      
		// 과목 합계 & 평균
		int[] subSum = new int[subjects.length];
		double[] subAvg = new double[subjects.length];
		      
		for (int i = 0; i < subjects.length; i++) { // 7
		  for (int j = 0; j < names.length; j++) { // 25
		     subSum[i] += scores[j][i]; 
		   }
		     subAvg[i] = Math.round((double)subSum[i] / names.length * 100) / 100.0;
		}
		               
		// 순위 매기기
		int[] rank = new int[names.length];
		      
		for (int i = 0; i < names.length; i++) { // 25
		  rank[i] = 1;
		  for (int j = 0; j < names.length; j++) { // 25
		     if(nameSum[i] < nameSum[j]){
		       rank[i]++;
		     }
		  }
		}
		      
		// 과목명 출력 & 합계,평균,석차
		      
		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 < names.length; i++) { // 25
		  System.out.print(names[i] + "\t");
		    for (int j = 0; j < subjects.length; j++) { // 7
		      System.out.print(scores[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++) { // 7
		    System.out.print(subSum[i] + "\t");
		}
		System.out.println();
		      
		System.out.print("과목평균\t");
		for (int i = 0; i < subAvg.length; i++) { // 7
		    System.out.print(subAvg[i] + "\t");
		}
		      
	}// main
		   
}// class




관련글 더보기