#include <stdio.h> //向右 向下 向左 向上 int main() { int a, b, i = 0, j = 0, n; // i表示行,j表示列 int count = 1; scanf("%d", &n); // 大小 int arr[19][19]; a = 0; b = n - 1; while (count <= n * n) { for (j = a; j <= b; j++) // 向右 { arr[a][j] = count++; } for (i = a + 1; i <= b; i++) // 向下 { arr[i][b] = count++; } for (j = b - 1; j >= a; j--) // 向左 { arr[b][j] = count++; } for (i = b - 1; i >= a + 1; i--) // 向上 { arr[i][a] = count++; } a++; b--; } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) printf("%d ", arr[i][j]); printf("\n"); } return 0; }