[문제]
달팽이 배열을 만들어서 이를 출력하는 프로그램을 작성하라.
달팽이 배열은 아래의 그림과 같다. 아래 그림에서는 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 |