-
1차원 배열
2차원배열
- 성적처리
import java.util.Scanner; public class ArrayEx03Score { public static void main(String[] args) { while(true) { Scanner sc = new Scanner(System.in) ; System.out.print("학생수="); int cnt = Integer.parseInt(sc.nextLine()); // 이름, 점수를 저장할 배열 String nameArr[] = new String[cnt]; int scoreArr[][] = new int[cnt+2][6]; // 점수 입력 시 메시지 사용할 제목 String msg[] = {"국어", "영어", "수학", "총점", "평균", "석차"}; // 데이터준비 for(int i=0; i<cnt; i++) { System.out.print("학생이름="); nameArr[i] = sc.nextLine(); for(int j=0; j<=2; j++) { System.out.print(msg[j]+"="); scoreArr[i][j] = Integer.parseInt(sc.nextLine()); } } // 개인별 총점, 평균, 과목별 총점 for(int i=0; i<cnt; i++) { // i행 j열이 각 개인의 과목별 점수 for(int j=0; j<=2; j++) { // 개인별 총점 scoreArr[i][3] += scoreArr[i][j]; // 과목별 총점 scoreArr[cnt][j] += scoreArr[i][j]; } // 개인별 평균 scoreArr[i][4] = scoreArr[i][3]/3; } // 과목별 평균 for(int c=0; c<3; c++) { scoreArr[cnt+1][c] = scoreArr[cnt][c]/cnt; } // 석차 구하기 for(int r=0; r<cnt; r++) { // r=0 for(int c=0; c<cnt; c++) { // c=0,1,2,3,4 // 내 총점 < 상대방 총점 if(scoreArr[r][3]<scoreArr[c][3]) { scoreArr[r][5] += 1; // 나보다 점수가 높은사람이 카운팅됨 } } scoreArr[r][5] += 1; // 내 석차는 나보다 점수가 높은 사람 명수의 +1 } // 석차순으로 정렬 for(int r=0; r<cnt-1; r++) { for(int r2=0; r2<cnt-1-r; r2++) { // 0,1,2,3 if(scoreArr[r2][5] > scoreArr[r2+1][5]) { // 데이터 교환 // 1.이름 String temp = nameArr[r2]; nameArr[r2] = nameArr[r2+1]; nameArr[r2+1] = temp; // 2.성적 for(int c=0; c<scoreArr[r2].length; c++) { int tempInt = scoreArr[r2][c]; scoreArr[r2][c] = scoreArr[r2+1][c]; scoreArr[r2+1][c] = tempInt; } } } } ///// 출력 ///// for(int k=0; k<scoreArr.length; k++) { // k=0,1,..5 if(k<cnt) { //이름 System.out.print(nameArr[k] +"\t"); }else if(k==cnt) { //총점 System.out.print("총점\t"); }else if(k==cnt+1) { //평균 System.out.print("평균\t"); } // 점수 출력 for(int c=0; c<scoreArr[k].length; c++) { System.out.print(scoreArr[k][c]+"\t"); } System.out.println(); } System.out.print("계속하려면 아무 키나 누르십시오"); String ans = sc.nextLine(); if(ans!=" ") continue; } } }
'Java' 카테고리의 다른 글
객체지향 퀴즈 (0) 2021.11.24 객체지향프로그래밍 (자바의정석) (0) 2021.11.22 정렬알고리즘 (0) 2021.11.22 do-while문 (0) 2021.11.22 for문/while문/switch문 (0) 2021.11.21