[C언어 배열] C배열 기초, 다차원, 2차원 배열 [예시와 설명 3편]
[C언어 배열] C배열 기초, 다차원, 2차원 배열 [예시와 설명 3편]
C언어 다차원 배열의 사용
- C언어 다차원 배열의 개념
- C언어 2차원 배열 입력
- C언어 2차원 배열 출력
- C언어 2차원 배열 예제
C언어 다차원 배열의 개념
int a[2][3] 이라 하면 2차원 배열이 형성 됩니다.
아래 예시를 보시면 좀 더 쉽게 이해할 수 있습니다.
2차원 배열
int a[2][3] 이라 하면 "행2개,열3개" 가 생긴다고 보시면 됩니다.
그래서 a[0][2] 에 5 가 입력되면 a[1][1]에 10이 입력되는 것이죠.
그래서 위의 배열 방식을 사용하게 되면 여러 다차원 배열을 생성할 수 있습니다.
C언어 3차원,4차원,5차원 배열
일반적으로 3차원 배열도 가끔 사용하며 4차원과 5차원 배열은 사용하는 사례가 거의 없습니다.
보통 2차원 배열을 많이 사용한다고 보시면 되겠습니다.
C언어 2차원 배열 입력
문제 : 배열 a[2][3]의 요소들의 값을 입력 받으려면 어떻게 해야하는가?!
간단히 생각한다면 배열함수를 선언하고 scanf로 a[0][0] 부터 a[1][2] 까지 총 6가지의 값을 입력해야 할 것입니다.
위와 같이 나열 할 수 있겠습니다. 우리는 중첩반복문을 사용하여 더 간단히 사용할 수 있습니다.
2023.03.10 - [프로그래밍] - [중첩반복문] for문 while문 if_else 포함
2023.03.11 - [프로그래밍] - [중첩반복문] 쉬운설명 if_else 를 이용한 for문 실습
C언어 2차원 배열 방법
자 위와 같이 i는 0이고 j가0일때의 값을 입력 받습니다. (scanf)
그리고 나서 2번째 for문에서 반복되면서 j++ 로인해 i는0,j는1의 값을 입력 받고 i는0,j는2까지 값을 입력 받은 뒤
다시 위로 올라가 i는 1, j는 0부터 시작, j가 2까지 입력값을 받게 되는 것 입니다.
지금까지 C언어 2차원 배열 입력을 해보았는데요.
입력을 해봤으면 출력도 해봐야겠죠?
C언어 2차원 배열 출력
문제 : 배열 a[2][3]의 요소들의 값을 출력받으려면 어떻게 해야하는가?!
위에서 했던 것과 같이 scanf로 a[0][0] 부터 a[1][2] 까지 총 6가지의 값을 나열 했다시피 일반적으로
printf로 a[0][0] 부터 a[1][2]까지 총 6가지를 나열 할 수 있습니다.
C언어 2차원 배열 출력 방법
아래와 같이 중첩반복문을 참고하여 프로그래밍을 할 수 있습니다.
그래서 이 2차원 배열의 입력과 출력을 합치면 아래와 같습니다.
C언어 2차원 배열 예제
#include <stdio.h>
int main(void) {
int i,j;
int a[2][3];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf_s("%d", &a[i][j]);
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d \n", a[i][j]);
}
}
}
하지만 위와 같이 표기하게 된다면 우리가 위에서 바왔던 2행 3열의 방식이 아닌 아래와 같이 한줄의 형태로 출력됩니다.
(입력값이 1,2,3,4,5,6)
그래서 2행, 3열 방식으로 변경하기 위해서는 "\n" 의 위치를 변경해 줘야 합니다.
C언어 2차원 배열 예제 (상세)
#include <stdio.h>
int main(void) {
int i,j;
int a[2][3];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf_s("%d", &a[i][j]);
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d", a[i][j]);
}
printf("\n");
}
}
그럼 어떻게 될까요?
i가0일때 j의 반복문이 0부터 2까지 진행되고 난 다음 "\n"이 되므로
아래와 같은 출력값을 얻을 수 있습니다.
기존 for문에서 했던 별과 공란 출력과 동일한 방법입니다.
2023.03.10 - [프로그래밍] - [중첩반복문] for문 while문 if_else 포함
2023.03.11 - [프로그래밍] - [중첩반복문] 쉬운설명 if_else 를 이용한 for문 실습
이상 [C언어 배열] C배열 기초, 다차원, 2차원 배열 [예시와 설명 3편] 에 대한 내용이였습니다.
읽어주셔서 감사합니다.