수업 목표

  • 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;
}

+ Recent posts