혼자 공부하는 C언어 14챕터 도전실전예제
문제
가로 세로의 합 구하기
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;
}