무룩 공부방

[Java] 44. 배열 (6) 2차원 배열 성적표 예제(Eclipse) 본문

IT/Java01_Beginner

[Java] 44. 배열 (6) 2차원 배열 성적표 예제(Eclipse)

moo_look 2023. 9. 5. 13:54

# 문제

2차원 배열 성적표를 만드시오

 

<조건>

int[][] score = new int[][] {
                             {100, 100, 100},
                             {50, 50, 50},
                             {40, 40, 40},
                             {10, 10, 10}
};

 

<출력>

   번호   국어   영어   수학   총점    평균
     1       100    100    100     300    100
     2         50      50      50     150      50
     3         40      40      40     120      40
     4         10      10      10       30      10
-----------------------------------------------------
   총점    200    200     200

 


package java01_basic;

import java.util.Scanner;

public class Java44 {

	public static void main(String[] args) {
		
        // 2차원 배열 성적표
		int[][] score = new int[][] {
			{100, 100, 100},
			{50, 50, 50},
			{40, 40, 40},
			{10, 10, 10}
		};
		int sum = 0;
		double avg = 0;
		
		System.out.println("번호\t국어\t영어\t수학\t총점\t평균");
		
		for(int i = 0; i < score.length; i++) {
			System.out.print((i+1)+"\t");
			for(int j = 0; j < score[i].length; j++) {
				sum += score[i][j];
				System.out.print(score[i][j]+"\t");
			}
			avg = sum / 3.0;
			System.out.println(sum+"\t"+(int)avg);
			sum = 0;
			avg = 0;

		}
		
		System.out.println("--------------------------------------------");
		
		System.out.print("총점\t");
		
		for(int i = 0; i < score[i].length; i++) { // 3
			for(int j = 0; j < score.length; j++) { // 4
				sum += score[j][i];
			}	
			System.out.print(sum+"\t");
			sum = 0;
		}
	
	}
}

 

<출력>

 

# 추가

과목별 총점을 구할 때 총점을 변수에 저장하여 출력하고 초기화하는 과정을 반복했었는데 사실 문제는 없다.

다만 다른 문제와 연계되거나 다른곳에 상호작용을 하게 될 경우 변수를 만들어 처리하면 더 좋다.

 

int tkor = 0;
int teng = 0;
int tmat = 0;. // 각 과목의 총점

 

tkor += score[i][0];
teng += score[i][1];
tmat += score[i][2]; // 총점 누적

 

System.out.println(tkor+"\t"+teng+"\t"+tmat); // 총점 출력

 

코드를 수정하면 아래와 같다.


package java01_basic;

import java.util.Scanner;

public class Java44 {

	public static void main(String[] args) {
		
        // 2차원 배열 성적표
		int[][] score = new int[][] {
			{100, 100, 100},
			{50, 50, 50},
			{40, 40, 40},
			{10, 10, 10}
		};
		int sum = 0;
		double avg = 0;
        
		int tkor = 0;
		int teng = 0;
		int tmat = 0;
        
		System.out.println("번호\t국어\t영어\t수학\t총점\t평균");
		
		for(int i = 0; i < score.length; i++) {
			System.out.print((i+1)+"\t");
			for(int j = 0; j < score[i].length; j++) {
				sum += score[i][j];
				System.out.print(score[i][j]+"\t");
			}
			avg = sum / 3.0;
			System.out.println(sum+"\t"+(int)avg);
			sum = 0;
			avg = 0;
            tkor += score[i][0];
			teng += score[i][1];
			tmat += score[i][2];
		}
		
		System.out.println("--------------------------------------------");
		
		System.out.print("총점\t");
		
		System.out.println(tkor+"\t"+teng+"\t"+tmat);
	
	}
}