ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어 다차원 배열
    Programming/C 2016. 5. 2. 20:47

    다차원 배열

    2차원 배열

    int arr1[3][4];  // 세로가 3, 가로가 4인 int형 2차원 배열
    int arr2[2][6];  // 세로가 2, 가로가 6인 int형 2차원 배열
    TYPE arr[세로길이][가로길이];

    2차원 배열의 메모리상 할당의 형태

    2차원 배열도 메모리상에는 1차원의 형태로 존재한다.

    3차원 배열

    int arr1[2][3][4];     // 높이 2, 세로3, 가로4인 int형 3차원 배열
    double arr2[5][5][5];  // 높이, 세로, 가로가 모두 5인 double형 3차원 배열  
    

    3차원 배열의 선언과 접근

    #include <stdio.h>
    
    int main(void)
    {
        int mean = 0, i, j;
        int record[3][3][2] = {
                {
                        {70, 80},   // A학급 학생 1의 성적
                        {94, 90},   // A학급 학생 2의 성적
                        {79, 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(i=0; i<3; i++)
            for(j=0; j<2; j++)
                mean += record[0][i][j];
        printf("A학급 전체 평균: %g \n", (double)mean/6);
    
        mean = 0;
        for(i=0; i<3; i++)
            for(j=0; j<2; j++)
                mean += record[1][i][j];
        printf("B학급 전체 평균: %g \n", (double)mean/6);
    
        mean = 0;
        for(i=0; i<3; i++)
            for(j=0; j<2; j++)
                mean += record[2][i][j];
        printf("C학급 전체 평균: %g \n", (double)mean/6);
    
        return 0;
    }

    3차원 배열은 여러 개의 2차원 배열이 모여있는 형태로 이해하는 것이 더 합리적이다.

    댓글

Designed by Tistory.