int numArr[3][4] = {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
};
int numArr[3][4] = {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
};
int row = sizeof(numArr) / sizeof(numArr[0]); // 행의 크기
int col = sizeof(numArr[0]) / sizeof(int); // 열의 크기
-> 행의 크기 : sizeof(numArr) / sizeof(numArr[0]);
-> 열의 크기 : sizeof(numArr[0]) / sizeof(int);
참고
2차원 배열의 요소들을 출력하거나 입력할 때, 1차원 배열과 마찬가지로 반복문을 사용한다.
이때 2차원 배열의 행의 크기와 열의 크기를 알고 있다면 조건문에 바로 입력해도 무방하지만, 실수로 잘못 입력할 가능성을 배제하기 위해 sizeof 연산자를 사용하는 것이 좋다.
표준 입력으로 5 X 5 정사각행렬이 입력된다. 사용자로부터 값을 입력받고, 행렬의 전치행렬이 출력되게 만들어라.
전치행렬은 왼쪽 위부터 오른쪽 아래까지의 대각선(주대각선)을 기준으로 값을 뒤집은 행렬을 말한다.
입력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int matrix[5][5];
scanf("%d %d %d %d %d",
&matrix[0][0], &matrix[0][1], &matrix[0][2], &matrix[0][3], &matrix[0][4]);
scanf("%d %d %d %d %d",
&matrix[1][0], &matrix[1][1], &matrix[1][2], &matrix[1][3], &matrix[1][4]);
scanf("%d %d %d %d %d",
&matrix[2][0], &matrix[2][1], &matrix[2][2], &matrix[2][3], &matrix[2][4]);
scanf("%d %d %d %d %d",
&matrix[3][0], &matrix[3][1], &matrix[3][2], &matrix[3][3], &matrix[3][4]);
scanf("%d %d %d %d %d",
&matrix[4][0], &matrix[4][1], &matrix[4][2], &matrix[4][3], &matrix[4][4]);
int row = sizeof(matrix) / sizeof(matrix[0]);
int col = sizeof(matrix[0]) / sizeof(int);
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", matrix[j][i]);
}
printf("\n");
}
return 0;
}
출처 : 남재윤, ⌜C언어 코딩 도장⌟, 길벗, 2021