수업 목표
- 2차원 배열이 무엇인지에 대해 배워본다.
2차원 배열
이해 할 때는 1차원 배열을 쌓아올린 형태로 이해하면 됩니다. 실제로는 메모리 상에는 1차원 배열이 나열되어 있고, 2차원인 척을 해줍니다.
// 선언 방법
자료형 배열명[배열크기1][배열크기2];
// 선언과 동시에 초기화 방법
자료형 배열명[줄개수][칸개수] = { { 값00, 값01, ..., 값0(칸개수-1)},
...
{ { 값(줄개수-1)0, 값(줄개수-1)1, ..., 값(줄개수-1)(칸개수-1) } };
// 자료형 호텔명[줄개수][칸개수] = { { 객실00, 객실01, ... , 객실0(칸개수-1)},
// ...
// { { 객실(줄개수-1)0, 객실(줄개수-1)1, ... , 객실(줄개수-1)(칸개수-1) } };
? 초기화 방법 부분이 이해 안된다.
Ex050201) 2차원 배열 1
아래 소스 코드를 이중 반복문 꿀팁으로 출력 결과를 예측해봅시다. 예측한 결과와 출력을 비교해봅시다.
// Main.c
#include <stdio.h>
int main(void)
{
int i, j;
int Array2D[4][3] = { { 1, 2, 3, },
{ 4, 5, 6, },
{ 7, 8, 9, },
{10, 11, 12, } };
for (i = 0; i < 4; ++i)
{
for (j = 0; j < 3; ++j)
{
printf("%2d ", Array2D[i][j]);
}
printf("\n");
}
return 0;
}
Ex050202) 2차원 배열 2
아래와 같은 입력을 받고 똑같은 출력을 하게끔 소스코드로 작성해봅시다.
//입력1
1 2 3 4 5 6 7 8 9 10 11 12
//출력1
1 2 3
4 5 6
7 8 9
10 11 12
// Main.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, j, Input;
int Array2D[4][3] = { 0, };
for (i = 0; i < 4; ++i)
{
for (j = 0; j < 3; ++j)
{
scanf("%d", &Input);
Array2D[i][j] = Input;
}
}
for (i = 0; i < 4; ++i)
{
for (j = 0; j < 3; ++j)
{
printf("%2d ", Array2D[i][j]);
}
printf("\n");
}
return 0;
}'C언어 공부 > C언어 강의' 카테고리의 다른 글
| 챕터 6-2 : [심화] 스택 프레임 (0) | 2026.03.06 |
|---|---|
| 챕터 6-1 : 함수 개론 (0) | 2026.03.06 |
| 챕터 5-1 : 1차원 배열 (0) | 2026.03.06 |
| 챕터 8-2 : 동적할당과 메모리 소유권 문제 (0) | 2026.03.03 |
| 챕터 1-11 : 입력 기초 (1) (0) | 2026.02.24 |