C언어 배열 (2차원 배열)
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);
}
}
행렬의 순서를 생각한다면 쉽게 이해할 수 있다