문제

가로 세로의 합 구하기

5행 6열의 2차원 배열을 선언하고 4행 5열 부분은 1부터 20까지 초기화합니다. 초기화된 배열에서 마지막 열의 요소에는 각 행의 합을 저장하고 마지막 행의 요소에는 각 열의 합을 저장한 후 전체 배열의 값을 출력하세요.


풀이과정: 이중 배열은 이중 반복문을 사용하면 간단하다.

#include <stdio.h>

int main(void) {

	int ary1[5][6] = {0};
	int count = 1;


	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 5; j++) {
			ary1[i][j] = count;
			count++;
		}
	}
  // 4행 5열 부분을 1부터 20까지 초기화

	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 5; j++) {
			ary1[i][5] += ary1[i][j];
		}
	}
  // 1~4행의 합을 각각 구해서 6번째 열에 저장

	for (int j = 0; j < 6; j++) {
		for (int i = 0; i < 4; i++) {
			ary1[4][j] += ary1[i][j];
		}
	}
  // 1~6열의 합을 각각 구해서 5번째 행에 저장

	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 6; j++) {
			printf("%5d", ary1[i][j]);
		}
		printf("\n");
	}
  // 출력

	return 0;
}

Tags:

Updated: