title: “C언어 배열 (2차원 배열)” categories:

  • C

    #C언어 배열 (2차원 배열) : 네이버 블로그

a[10]은 1차원 배열로 a[x] 로 구성된다.

a[10][10] 배열은 a[x][y]로 x, y 값을 다르게 하면 다른 배열의 요소를 쓸 수 있다.

즉 가로 세로를 표현하는 표, 그림 등을 이용할 때 2차원 배열을 사용하면 편하게 쓸 수 있다.

2차원 배열도 1차원 배열처럼 초기화를 할 수 있다.

a[3][3] = { {1,2,3},{4,5,6},{7,8,9} }

중괄호의 위치에 주목하라

a[1][1]=두번째 배열의 두번째 인수가 되므로 5

배열은 0부터 시작함에 주의하라.

아래 예제는 3*5 행렬의 인자를 랜덤으로 넣은 것을 출력하는 예제이다

#include
#include
#define ROWS 3
#define COLS 5
int main() {
 int s[ROWS][COLS]; //3\*5
 int i, j;
 for (i = 0; i < ROWS; i++)
 for (j = 0; j < COLS; j++)
 s[i][j] = rand() % 100;
 for (i = 0; i < ROWS; i++) {
 for (j = 0; j < COLS; j++)
 printf("%02d ", s[i][j]);
 printf("\n");

 }
}

중첩된 반복문에 주의하라

아래 예제는 3*5행렬의 각 행의 합, 각 열의 합을 구하는 예제이다

#include
int main(void) {
 int a[3][5] = { {12, 56, 32, 16, 98},{99,56,34,41,3},{65,3,87,78,21} };
 for (int i = 0; i < 3; i++)
 {
 int sum=0;
 for (int k = 0; k < 5; k++)
 {
 sum += a[i][k];
 }
 printf("%d행의 합계: %d\n", i, sum);
 }
 printf("\n");
 for (int i = 0; i < 5; i++)
 {
 int sum = 0;
 for (int k = 0; k < 3; k++)
 {
 sum += a[k][i];
 }
 printf("%d열의 합계: %d\n", i, sum);
 }
}

행렬의 순서를 생각한다면 쉽게 이해할 수 있다

업데이트: