Introfor

달팽이사각형 본문

Programming_prob/Jungol

달팽이사각형

YongArtist 2016. 11. 2. 13:48


정사각형의 크기를 입력 받은 후 시계방향으로 돌면서 다음과 같은 형태로 출력하는 프로그램을 작성하시오.


< 처리조건 >
(1) 가장 왼쪽 위의 좌표부터 차례로 숫자를 대입시킨다. 
(2) 오른쪽으로 채워 나가다가 끝이면 다시 아래 → 왼쪽 → 위 →오른쪽의 순으로 모두 채워질때까지 반복한다.


e3050b66a1b29a01767400d7560a4131_1449725
 


 

 

정사각형의 크기 n(1부터 100사이의 정수)을 입력받는다.



위에서 언급한 형태로 정사각형의 내부 숫자를 차례로 채운 후의 모습을 출력한다.
숫자 사이는 공백으로 구분한다.

<소스코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
 
int main() {
 
    int n = 0;                          // 입력 받는 수, 반복조건
    int m = 1;                          // 배열에 넣어줄 값
    int tmp = 0;                        // 출력 반복문 조건
    int x = 0, y = -1;                  // 배열 위치
    int arr[100][100= { 0 };
 
    scanf("%d"&n);
 
    tmp = n;
 
    while (n > 0) {
        for (int i = 0; i < n; i++) {
            arr[x][++y] = m++;
        }
 
        n--;
 
        for (int i = 0; i < n; i++) {
            arr[++x][y] = m++;
        }
 
        n--;
 
        for (int i = 0; i < n + 1; i++) {
            arr[x][--y] = m++;
        }
 
        for (int i = 0; i < n; i++) {
            arr[--x][y] = m++;
        }
    }
 
    for (int i = 0; i < tmp; i++) {
        for (int j = 0; j < tmp; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
cs


'Programming_prob > Jungol' 카테고리의 다른 글

문자마름모  (0) 2016.11.03
문자사각형2  (0) 2016.11.02
문자사각형1  (0) 2016.11.01
숫자사각형4  (0) 2016.10.26
숫자사각형3  (0) 2016.10.26
Comments