2차원 배열을 쉽게 다룰 수 있다면 일정 규칙의 데이터를 다루기 쉬워진다

이번 포스팅은 2차원 예제의 심화 예제이다

일단 가벼운 예제로 시작하자

#include<stdio.h>
void display(int image[8][16]) { //배열을 출력하는 함수
	for (int r = 0; r < 8; r++) {
		for (int c = 0; c < 16; c++)
		{
			if (image[r][c] == 0)
				printf("*");
			else
				printf("_");
		}
		printf("\n");
	}
}
void inverse(int img[8][16]) { //값을 반전시키는 함수
	for (int r = 0; r < 8; r++)
	{
		for (int c = 0; c < 16; c++) {
			if (img[r][c] == 0)
				img[r][c] = 1;
			else
				img[r][c] = 0;
		}
	}
}
int main() {
	int image[8][16];
	srand(time(NULL));
	for (int r = 0; r < 8; r++)
	{
		for (int c = 0; c < 16; c++) {
			image[r][c] = rand() % 2;
		}
	}
	printf("변환전 이미지\n");
	display(image);
	inverse(image);
	printf("\n\n변환후 이미지\n");
	display(image);
}

배열의 자료형은 바꿀 수 있다. 아래 예제를 보자

#include<stdio.h>
int main() {
	char board[3][3]; //char형 배열 선언
	int x, y, i, k;
	for (x = 0; x < 3; x++)
		for (y = 0; y < 3; y++)
			board[x][y] = ' '; //모든 배열을 공백으로
	for (k = 0; k < 9; k++)
	{
		printf("(x y) 좌표 : ");
		scanf("%d%d", &x, &y);
		board[--x][--y] = (k % 2 == 0) ? 'x' : 'o'; 조건에 따라 배열에 'x'나 'o'문자가 들어간다
		for (i = 0; i < 3; i++)
		{
			printf("---!---!---\n");
			printf("%c  | %c | %c \n", board[i][0], board[i][1], board[i][2]);
		}
		printf("---!---!---\n");
	}
}

char형으로 선언 후 문자를 넣을 수 있다.

카테고리:

업데이트: