Web Developer/JAVA I

7. 2 Dimensional Array (2차원 배열) 연습문제

sayitditto 2023. 1. 8. 22:47

I. 2차원 배열 기본 사용법

int[][] scores = {
    {89, 93, 91, 93, 92, 78, 90, 90, 93, 90},
    {91, 82, 72, 98, 92, 87, 77, 87, 74, 88},
    {98, 93, 94, 91, 97, 94, 91, 96, 98, 90},
    {65, 63, 57, 87, 88, 92, 78, 85, 100, 68},
    {45, 50, 48, 63, 67, 58, 40, 66, 47, 64}
};

1. 학생별 평균 구하기 : 각 학생의 평균을 각각 구해서 출력하세요.

for (int i = 0; i < scores.length; i++) { // 학생 수
int sum = 0; // 한 학생의 점수 총합
	for (int j = 0; j < scores[i].length; j++) { // 학생 당 점수들
	sum += scores[i][j];
	}
double average = sum / (double)scores[i].length;
System.out.println((i + 1) + "번째 학생의 평균 점수는 " + average + "점");

2. 학생별 최고점 구하기: 각 학생의 최고 점수를 구해서 출력하세요.

for (int i = 0; i < scores.length; i++) { // 학생 수
int max = 0;
	for (int j = 0; j < scores[i].length; j++) { // 학생 당 점수들
		if (max < scores[i][j]) {
			max = scores [i][j];
		}
	}
	System.out.println((i + 1) + "번째 학생의 최고점은 " + max + "점");
}

3. 평균 최고점 구하기: 평균이 가장 높은 학생의 평균점수와 몇 번째 학생인지 출력하세요.

int maxIndex = 0;
double maxAverage = 0;
for (int i = 0; i < scores.length; i++) { // 학생
int sum = 0;
	for (int j = 0; j < scores[i].length; j++) { // 점수 
	sum += scores[i][j];
	}
	double average = sum / (double)scores[i].length;
	if (maxAverage < average) {
		maxAverage = average;
		maxIndex = i;
	}
} 
System.out.println("평균이 가장 높은 학생은 " + (maxIndex + 1) + " 평균 점수는 " + maxAverage);

4. 특정 과목 최고점: 4번째 과목의 최고 성적의 학생이 몇 번째 학생인지와 점수를 출력하세요.

int maxScore = 0;
int maxIndex1 = 0; 
for (int i = 0; i < scores.length; i++) { // 학생
	if (maxScore < scores[i][3]) {
		maxScore = scores [i][3];
		maxIndex1 = i;
	}
}
System.out.println("4번째 과목의 최고 성적자는 " + (maxIndex1 + 1) + " 점수는 " + maxScore);

5. 일부 평균 최고점: 시험과목 index 3~7 의 평균이 가장 높은 학생의 index를 구하여 출력하세요.

int maxIndex2 = 0;
double maxAverage1 = 0;
for (int i = 0; i < scores.length; i++) {
	int sum = 0;
	for (int j = 3; j <= 7; j++) {
		sum += scores[i][j];
	}
double average1 = sum / (double) 5.0;
	if (maxAverage1 < average1) {
		maxAverage1 = average1;
		maxIndex2 = i;
	}
}	
System.out.println("3~7 과목 평균이 가장 높은 학생은 " + (maxIndex2 + 1) + "번째 학생이고, 평균은 " + maxAverage1);

'Web Developer > JAVA I' 카테고리의 다른 글

8. String (문자열) 연습문제  (0) 2023.01.08
8. String (문자열) 예제  (0) 2023.01.08
7. 2 Dimensional Array (2차원 배열) 예제  (0) 2023.01.08
6. Array (배열) 연습문제  (0) 2023.01.08
6. Array (배열) 예제  (0) 2023.01.08