Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 다차원 배열 완벽 정리: 개념, 문법, 행·열 합계 예제

다차원 배열이란?

C 언어에서는 2차원을 넘어 3차원 이상의 배열도 선언할 수 있으며, 이러한 배열을 다차원 배열(multidimensional array)이라고 부릅니다. 다차원 배열은 행렬 연산, 이미지 처리, 3차원 좌표 데이터 관리 등 복잡한 데이터 구조가 필요한 프로그램에서 널리 활용됩니다.

배열이 가질 수 있는 차원 수의 상한은 표준으로 정해져 있지 않으며, 사용하는 컴파일러에 따라 달라집니다.

다차원 배열 선언 문법

다차원 배열의 일반적인 선언 형식은 다음과 같습니다.

datatype arrayname [size1] [size2] ... [sizen];

예를 들어, 3차원 배열을 선언하는 방법은 아래와 같습니다.

int a[3][3][3];

위 배열이 담을 수 있는 전체 요소의 개수는 각 차원 크기를 곱하여 계산합니다.

요소 개수 = 3 × 3 × 3 = 27개

예제: 5×5 배열의 행 합계와 열 합계 구하기

다음은 실행 시간에 사용자로부터 값을 입력받아(run-time compilation), 5×5 2차원 배열의 행(row)별 합계열(column)별 합계를 계산하는 C 프로그램입니다.

#include <stdio.h>

int main() {
    // 배열 및 변수 선언 //
    int A[5][5], i, j, row = 0, column = 0;

    // 배열에 요소 입력받기 //
    printf("Enter elements into the array : \n");
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 5; j++) {
            printf("A[%d][%d] : ", i, j);
            scanf("%d", &A[i][j]);
        }
    }

    // 각 행의 요소 합계 계산 //
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 5; j++) {
            row = row + A[i][j];
        }
        printf("The sum of elements in row number %d is : %d\n", i, row);
        row = 0;
    }

    // 각 열의 요소 합계 계산 //
    for (j = 0; j < 5; j++) {
        for (i = 0; i < 5; i++) {
            column = column + A[i][j];
        }
        printf("The sum of elements in column number %d is : %d\n", j, column);
        column = 0;
    }
    return 0;
}

참고: 원본 코드의 열 합계 출력 부분에는 루프 변수 j 대신 i를 사용해 모든 결과가 "column number 5"로 잘못 표시되는 오류가 있었습니다. 위 코드에서는 이를 j로 수정하여 올바른 열 번호가 출력되도록 했습니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Enter elements into the array :
A[0][0] : 1
A[0][1] : 2
A[0][2] : 4
A[0][3] : 3
A[0][4] : 5
A[1][0] : 2
A[1][1] : 5
A[1][2] : 6
A[1][3] : 7
A[1][4] : 2
A[2][0] : 3
A[2][1] : 6
A[2][2] : 2
A[2][3] : 6
A[2][4] : 7
A[3][0] : 2
A[3][1] : 7
A[3][2] : 4
A[3][3] : 3
A[3][4] : 1
A[4][0] : 4
A[4][1] : 5
A[4][2] : 6
A[4][3] : 7
A[4][4] : 8
The sum of elements in row number 0 is : 15
The sum of elements in row number 1 is : 22
The sum of elements in row number 2 is : 24
The sum of elements in row number 3 is : 17
The sum of elements in row number 4 is : 30
The sum of elements in column number 0 is : 12
The sum of elements in column number 1 is : 25
The sum of elements in column number 2 is : 22
The sum of elements in column number 3 is : 26
The sum of elements in column number 4 is : 23

핵심 정리

  • C 언어는 3차원 이상의 다차원 배열을 지원하며, 최대 차원 수는 컴파일러마다 다릅니다.
  • 배열의 총 요소 개수는 각 차원 크기의 곱으로 계산됩니다.
  • 행 합계는 바깥 루프를 행 기준으로, 열 합계는 바깥 루프를 열 기준으로 순회하면 손쉽게 구할 수 있습니다.
  • 출력 시 반드시 해당 루프의 인덱스 변수를 사용해야 의도한 번호가 정확히 표시됩니다.