Search

문자열3_문제01_학생정보

대분류
STEP06 문자열
소분류
문자열3_문제

영상

문제

package 문자열3_문제; /* student배열은 차례대로 이름, 지역, 번호를 의미한다. score배열은 차례대로 번호, 국어, 수학, 영어성적을 의미한다. [문제1] 아래 순서대로 전체 학생의 정보를 출력하시오. [학생번호] [이름] [지역] [국어] [수학] [영어] [총합] [평균] [정답1] [학생번호][ 이름][지역][국어][수학][영어][총합][ 평균] [ 1001][이만수][신촌][100][ 20][ 30][150][50.00] [ 1002][김철민][강남][ 10][ 60][ 60][130][43.33] [ 1003][심장호][대치][ 23][ 63][ 31][117][39.00] [ 1004][유재석][강동][ 45][ 30][ 35][110][36.67] [문제2] 각 과목별 1등 학생의 이름과 전체 1등의 이름을 출력하시오. [정답2] 1등 학생 = 이만수 국어 1등 = 이만수 수학 1등 = 심장호 영어 1등 = 김철민 */ public class 문자열3_문제01_학생정보_문제 { public static void main(String[] args) { String[][] student = { {"이만수","신촌","1001"}, {"김철민","강남","1002"}, {"심장호","대치","1003"}, {"유재석","강동","1004"} }; String[][] score = { {"1001","100","20","30"}, {"1002","10" ,"60","60"}, {"1003","23" ,"63","31"}, {"1004","45" ,"30","35"} }; } }
Java
복사

해설

package 문자열3_문제; /* student배열은 차례대로 이름, 지역, 번호를 의미한다. score배열은 차례대로 번호, 국어, 수학, 영어성적을 의미한다. [문제1] 아래 순서대로 전체 학생의 정보를 출력하시오. [학생번호] [이름] [지역] [국어] [수학] [영어] [총합] [평균] [정답1] [학생번호][ 이름][지역][국어][수학][영어][총합][ 평균] [ 1001][이만수][신촌][100][ 20][ 30][150][50.00] [ 1002][김철민][강남][ 10][ 60][ 60][130][43.33] [ 1003][심장호][대치][ 23][ 63][ 31][117][39.00] [ 1004][유재석][강동][ 45][ 30][ 35][110][36.67] [문제2] 각 과목별 1등 학생의 이름과 전체 1등의 이름을 출력하시오. [정답2] 1등 학생 = 이만수 국어 1등 = 이만수 수학 1등 = 심장호 영어 1등 = 김철민 */ public class 문자열3_문제01_학생정보_정답 { public static void main(String[] args) { String[][] student = { {"이만수","신촌","1001"}, {"김철민","강남","1002"}, {"심장호","대치","1003"}, {"유재석","강동","1004"} }; String[][] score = { {"1001","100","20","30"}, {"1002","10" ,"60","60"}, {"1003","23" ,"63","31"}, {"1004","45" ,"30","35"} }; // 문제1 System.out.printf("[%4s][%4s][%2s][%s][%s][%s][%s][%4s]\n", "학생번호", "이름", "지역", "국어", "수학", "영어", "총합", "평균"); for(int i=0; i<score.length; i++) { int kor = Integer.parseInt(score[i][1]); int math = Integer.parseInt(score[i][2]); int eng = Integer.parseInt(score[i][3]); int total = kor + math + eng; double avg = total / 3.0; System.out.printf("[%6s][%s][%2s][%3s][%3s][%3s][%3d][%4.2f]\n", score[i][0], student[i][0], student[i][1], score[i][1], score[i][2], score[i][3], total, avg); } // 문제2 int maxKor = 0, maxKorIndex = 0; int maxMath = 0, maxMathIndex = 0; int maxEng = 0, maxEngIndex = 0; int max = 0, maxIndex = 0; for(int i=0; i<score.length; i++) { int kor = Integer.parseInt(score[i][1]); int math = Integer.parseInt(score[i][2]); int eng = Integer.parseInt(score[i][3]); int total = kor + math + eng; double avg = total / 3.0; if(maxKor < kor) { maxKor = kor; maxKorIndex = i; } if(maxMath < math) { maxMath = math; maxMathIndex = i; } if(maxEng < eng) { maxEng = eng; maxEngIndex = i; } if(max < total) { max = total; maxIndex = i; } } System.out.println("1등 학생 = " + student[maxIndex][0]); System.out.println("국어 1등 = " + student[maxKorIndex][0]); System.out.println("수학 1등 = " + student[maxMathIndex][0]); System.out.println("영어 1등 = " + student[maxEngIndex][0]); } }
Java
복사