개발 기록/C Language

[C언어] 달팽이 배열 만들기 | Snail Array

우준성 2021. 5. 10. 10:28
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define SIDE 100

int arr[SIDE][SIDE]; // arr[100][100]

void printarr(int n) 
{
	int i, j;
	for (i = 0; i < n; i++) 
    	{
		for (j = 0; j < n; j++) 
        	{
			printf("%3d ", arr[i][j]);
		}
		printf("\n");
	}
}

void makearr(int n) 
{
	int value = 1;
	int row = 0, col = -1;
	int inc = 1; // 증가 감소 처리 , 1 , -1
	int i, j;
	while (n > 0) 
    	{
		for (i = 0; i < n; i++) 
        	{
			col += inc;
			arr[row][col] = value++; // value는 배열에 넣을 값
		}
		n--;
		if (n == 0) break;
		for (i = 0; i < n; i++) 
        	{
			row += inc;
			arr[row][col] = value++;
		}
		inc *= -1;
	}
}

int main(void)
{
	int n = 0;
	printf("달팽이 배열의 길이 : ");
	scanf("%d", &n);
	makearr(n); // 달팽이 배열 만들기
	printarr(n);

	return 0;
}

 

반응형