Menu
Coddy logo textTech

다차원 배열

Coddy C 여정의 Fundamentals 섹션에 포함된 레슨 — 63개 중 56번째.

다차원 배열은 배열의 배열입니다. C 언어에서는 행과 열이 있는 테이블 형태인 2차원 배열(가장 일반적인 다차원 배열)을 생성할 수 있습니다.

2차원 배열을 선언합니다:

int matrix[3][4];

이것은 3개의 행과 4개의 열을 가진 2차원 배열을 생성합니다.

2차원 배열을 선언할 때 초기화할 수 있습니다:

int matrix[3][4] = {
    {1, 2, 3, 4},    // 첫 번째 행
    {5, 6, 7, 8},    // 두 번째 행
    {9, 10, 11, 12}  // 세 번째 행
};

2차원 배열의 요소에 접근하려면 두 개의 인덱스를 사용합니다:

int value = matrix[1][2];  // 1행 2열에 접근합니다 (값은 7이 됩니다)

2차원 배열의 요소를 수정하려면:

matrix[0][3] = 100;  // 0행 3열의 요소를 100으로 변경합니다

중첩 루프를 사용하여 2차원 배열의 모든 요소에 액세스할 수도 있습니다:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // 각 행이 끝난 후 줄바꿈
}
challenge icon

챌린지

쉬움

2차원 정사각형 배열(행의 수와 열의 수가 같은 배열)을 입력받아 주 대각선(왼쪽 위에서 오른쪽 아래로)에 있는 요소들을 출력하는 printDiagonal이라는 함수를 작성하세요.

함수의 요구 사항은 다음과 같습니다:

  1. 정수 배열과 그 크기를 매개변수로 받습니다.
  2. 주 대각선(행 인덱스와 열 인덱스가 같은 위치)에 있는 각 요소를 출력합니다.
  3. 각 요소는 공백으로 구분하여 출력합니다.

예를 들어, 다음과 같은 배열이 주어졌을 때:

1 2 3 4 5 6 7 8 9

함수는 다음과 같이 출력해야 합니다: 1 5 9

치트 시트

다차원 배열은 배열의 배열입니다. C 언어에서는 행과 열이 있는 2차원 배열을 만들 수 있습니다.

2차원 배열 선언하기:

int matrix[3][4];

선언 시 2차원 배열 초기화하기:

int matrix[3][4] = {
    {1, 2, 3, 4},    // 첫 번째 행
    {5, 6, 7, 8},    // 두 번째 행
    {9, 10, 11, 12}  // 세 번째 행
};

두 개의 인덱스를 사용하여 요소에 접근하기:

int value = matrix[1][2];  // 1행 2열에 접근 (값은 7이 됨)

요소 수정하기:

matrix[0][3] = 100;  // 0행 3열의 요소를 100으로 변경

중첩 루프를 사용하여 모든 요소에 접근하기:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // 각 행이 끝난 후 줄바꿈
}

직접 해보기

#include <stdio.h>

// 정사각 행렬의 대각선 요소를 출력하는 함수
void printDiagonal(int matrix[][100], int size) {
    // 여기에 코드를 작성하세요
    
}

int main() {
    int size;
    scanf("%d", &size);
    
    int matrix[100][100];
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    
    printDiagonal(matrix, size);
    
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Fundamentals의 모든 레슨