다차원 배열 Multi-D Array

Gogi·2023년 5월 24일
0

C언어 기초 목록

목록 보기
16/23

여러 차원으로 구성된 배열

다차원 배열은 행과 열, 그리고 추가적인 차원을 가지는 배열이다. 다차원 배열은 행렬과 같은 형태의 데이터를 표현하는 데 사용됩니다.


개념 설명

일반적으로 2차원 배열과 3차원 배열이 사용된다. 2차원 배열은 행과 열로 구분되며, 3차원 배열은 2차원 배열에 추가 차원이 추가된 배열이다.

- 2차원 배열의 선언 방식

`int arr[3][3] = 
{
  {'A', 'B', 'C'},
  {'D', 'E', 'F'},
  {'G', 'H', 'I'}
};
012
0'A''B''C'
1'D''E''F'
2'G''H''I'

- 3차원 배열의 선언 방식

`int arr[3][3][3] = 
{
  {'A1', 'B1', 'C1'},
  {'D1', 'E1', 'F1'},
  {'G1', 'H1', 'I1'}
},
{
  {'A2', 'B2', 'C2'},
  {'D2', 'E2', 'F2'},
  {'G2', 'H2', 'I2'}
},
{
  {'A3', 'B3', 'C3'},
  {'D3', 'E3', 'F3'},
  {'G3', 'H3', 'I3'}
};
000102101112202122
0'A1''B1''C1''A2''B2''C2''A3''B3''C3'
1'D1''E1''F1''D2''E2''F2''D3''E3''F3'
2'G1''H1''I1''G2''H2''I2''G3''H3''I3'

사용 예시

- 2차원 배열

int main()
{
    int array_2d[3][2];
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            printf("%p \n", &array_2d[i][j]);
        }
        printf("\n");
    }
    return 0;
}

- 3차원 배열

int main()
{
	int mean = 0;
	int record[3][3][2] =
	{
		{
			{70, 80},    // A 학급 학생 1의 성적
			{94, 90},    // A 학급 학생 2의 성적
			{70, 85}     // A 학급 학생 3의 성적
        },
        {
            {83, 90},    // B 학급 학생 1의 성적
            {95, 60},    // B 학급 학생 2의 성적
            {90, 82}     // B 학급 학생 3의 성적
        },
        {
            {98, 89},    // C 학급 학생 1의 성적
            {99, 94},    // C 학급 학생 2의 성적
            {91, 87}     // C 학급 학생 3의 성적
        }
    };
    
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            mean += record[0][i][j];
        }
    }
    printf("A 학급 전체 평균: %g \n", (double)mean/6);
    mean = 0;
    
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            mean += record[1][i][j];
        }
    }
    printf("B 학급 전체 평균: %g \n", (double)mean/6);
    mean = 0;
    
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            mean += record[2][i][j];
        }
    }
    printf("C 학급 전체 평균: %g \n", (double)mean/6);  
    return 0;
}

주의사항

  • 다차원 배열의 크기는 미리 정적으로 선언되어야 함

업데이트

. . .

profile
C, C++, C#, Unity

0개의 댓글