[C] 다차원 배열

2022. 12. 2. 19:22C언어/기본 개념

728x90

기본적으로 흔히 알고 있는 배열은 1차원 배열이다.

하지만 여러 사람의 성적을 작성을 하고 싶은 경우 즉 형태가 같은 배열이 여러개 필요 할 때는 2차원 배열을 사용하면 편하다.

int score[3][4];
[3]은 행, [4]는 열이라고 생각하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main(void)
{
    int score[3][4]; //3사람의 4개 점수
    int total;
    double avg;
    int i, j;
 
    for (i = 0; i < 3; i++) //3번 반복(한 사람씩)
    {
        printf("4과목 점수 입력 : ");
        for (j = 0; j < 4; j++) // 4과목의 점수 입력
        {
            scanf("%d"&score[i][j]);
        }
    }
 
    for (i = 0; i < 3; i++)
    {
        total = 0;
        for (j = 0; j < 4; j++)
        {
            total += score[i][j];
        }
        avg = total / 4.0;
        printf("총점 : %d, 평균 : %.2lf\n", total, avg);
    }
 
    return 0;
}
cs

2차원 배열 초기화

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main(void)
{
    int num[3][4= {
        {1234,},
        {5678},
        {9101112}
    };
 
    int i, j;
 
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            printf("%5d", num[i][j]);
        }
        printf("\n");
    }
    return 0;
}
cs

5행 int num[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} } 하고 같은 문장이다.

15행은 num[0] 배열에 num[0][0], num[0][1], num[0][2], num[0][3] 반복해주고

13행은 15행 반복문 코드가 4번 실행을 마칠 때마다 num[0][0], num[1][0], num[2][0] 배열명을 증가시켜준다.


2차원 char배열

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main(void)
{
    char fruit[5][20];
    int i;
    int count;
 
    count = sizeof(fruit) / sizeof(fruit[0]);
    for (i = 0; i < count < 3; i++)
    {
        scanf("%s", fruit[i]);
    }
 
    for (i = 0; i < count; i++)
    {
        printf("%s", fruit[i]);
    }
 
    return 0;
}
cs

 

728x90

'C언어 > 기본 개념' 카테고리의 다른 글

함수 포인터와 void 포인터  (0) 2023.02.07
이중포인터, 배열 포인터  (0) 2022.12.26
[C] 변수 영역  (0) 2022.12.01
[C] 문자열  (0) 2022.11.28
[C] 문자  (0) 2022.11.25