공부 STUDY/JAVA

[JAVA] 자바의 정석 연습문제 5장 배열 [5-4]

CHANGEL 2023. 2. 25. 09:02

[5-4] 2차원 배열 arr에 담긴 모든 값의 총합과 평균을 구하는 프로그램을 완성하시오.

 

public class No1 {
    public static void main(String[] args) {
        int[][] arr ={
                {5, 5, 5, 5, 5},
                {10, 10, 10, 10, 10},
                {20, 20, 20, 20, 20},
                {30, 30, 30, 30, 30},
        };

        int total = 0;
        float average = 0;


        for(int i = 0; i <arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                total += arr[i][j];

            }
            average = total / (float) (arr.length * arr[0].length); // int로 나눌 경우 int 나누기 int 이므로 결과를 int로 얻는다. 그러므로 나누는 값을
            //형변환해야한다.
        }
        System.out.println("total = " + total);
        System.out.println("average = " + average);
    }
}

 

# 숙지해야할 점:

 

평균을 구할 때는 배열의 모든 요소의 총합을 개수로 나누면 되는데, int로 나누면  int  나누기 int 이기 때문에 결과를 int로 얻으므로 소수점 이하의 값을 얻을 슈 없다. 그래서 나누는 값 역시 float으로 형변환해주어야한다.

 

 

 

int형(4byte) 보다 크기가 작은 자료형은 int형으로 형변환 후에 연산을 수행한다.

 

두 개의 피연산자 중 자료형의 표현 범위가 큰 쪽에 맞춰서 형변환 된 후 연산을 수행한다.

 

정수형 간의 나눗셈에서 0으로 나누는 것은 금지되어 있다.