#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;
}
반응형