본문 바로가기

C 언어/연습문제

C언어 연습문제29

[문제]

달팽이 배열을 만들어서 이를 출력하는 프로그램을 작성하라.
달팽이 배열은 아래의 그림과 같다. 아래 그림에서는 4x4의 달팽이 배열과 5x5의 달팽이 배열을 보여주고 있다. 이 내용을 참조하여 프로그램 사용자로부터 하나의 숫자 n을 입력 받아서 n x n의 길이에 해당하는 달팽이 배열을 출력해주는 프로그램을 작성하라.

 

[실행결과]

 

[코드]

#include<stdio.h>

int main(void)
{
	int arr[50][50];
	int i, j, idx, len;
	int w = -1, s = 0, inc = 1, val = 0;

	printf("숫자를 입력하시오: ");
	scanf_s("%d", &len);
	idx = len;

	while (1)
	{
		for (i = 0; i < idx; i++) // 가로 단위 그림
		{
			val++;
			w = w + inc;
			arr[s][w] = val;
		}
		idx--;

		if (val == len * len)
			break;

		for (i = 0; i < idx; i++) // 세로 단위 그림
		{
			val++;
			s = s + inc;
			arr[s][w] = val;
		}
		inc *= -1;
	}

	for (i = 0; i < len; i++)
	{
		for (j = 0; j < len; j++)
			printf("%2d ", arr[i][j]);
		printf("\n");
	}

	return 0;
}

 

<참고>

윤성우의 열혈 C 프로그래밍

'C 언어 > 연습문제' 카테고리의 다른 글

C언어 연습문제31  (0) 2022.03.25
C언어 연습문제30  (0) 2022.03.25
C언어 연습문제28  (0) 2022.03.21
C언어 연습문제27  (0) 2022.03.18
C언어 연습문제26  (0) 2022.03.17