C 언어로 만든 달팽이 배열 출력 예제입니다.
#include <stdio.h>
int n = 0; // 숫자 1, 2, 3, ...
int step = 1; // 증가/감소 크기: 1, -1
int y = 0; // 줄 위치
int x = -1; // 칸 위치 (배열 선두보다 한칸 앞)
int arr[21][21] = {0, }; // 2차원 배열 구조 (size: 1~20)
int main() {
int SIZE, size;
int i, j;
printf("달팽이 배열 크기(1~20): ");
scanf(" %d", &SIZE);
size = SIZE;
while (1) {
for(i=0; i<size; i++) { // 몇 칸 진행할까
n++;
x += step;
arr[y][x] = n;
}
size--;
if (size < 1) // 출력할 게 없으면 종료
break;
for(i=0; i<size; i++) { // 몇 줄 진행할까
n++;
y += step;
arr[y][x] = n;
}
step = -step; // 증감 방향을 반대로
}
// 2차원 리스트 출력하기
for(i=0; i<SIZE; i++) {
for(j=0; j<SIZE; j++)
printf("%4d", arr[i][j]);
printf("\n");
}
return 0;
}
[실행 결과]
달팽이 배열 크기(1~20): 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
<이상>
'C' 카테고리의 다른 글
C 언어, 한글 초성 분리 (0) | 2021.02.16 |
---|---|
C 언어, 문자열 슬라이싱(일부분) 복사하기 (0) | 2020.09.28 |
C 언어, 이진수 출력하기 (0) | 2020.08.04 |
C 언어, 키보드 입력 버퍼 비우기 (0) | 2019.09.24 |
C 언어, 1!+2!+3!+4!+5!+6! 출력하기 (0) | 2019.07.28 |