1 #include <stdio.h>
2
3 int main(void)
4 {
5 int n, i, j, number;
6 int array[10][10];
7 int top, bottom, left, right;
8
9 scanf("%d", &n);
10 top = 0; //上
11 bottom = n - 1; //下
12 left = 0; //左
13 right = n - 1; //右
14
15 number = 0;
16 //旋转的圈数
17 for (j = 0; j <= n / 2; j++)
18 {
19 //向左
20 for (i = left; i <= right; i++)
21 {
22 number++;
23 array[top][i] = number;
24 }
25 top++;
26
27 //向下
28 for (i = top; i <= bottom; i++)
29 {
30 number++;
31 array[i][right] = number;
32 }
33 right--;
34
35 //向左
36 for (i = right; i >= left; i--)
37 {
38 number++;
39 array[bottom][i] = number;
40 }
41 bottom--;
42
43 //向上
44 for (i = bottom; i >= top; i--)
45 {
46 number++;
47 array[i][left] = number;
48 }
49 left++;
50 }
51
52 for (i = 0; i < n; i++)
53 {
54 for (j = 0; j < n; j++)
55 {
56 printf("%3d", array[i][j]);
57 }
58 printf("
");
59 }
60
61 return 0;
62 }