#include <stdio.h> //通过控制边界来达到题目目的 int main() { int m[20][20]={0}; int n; scanf("%d",&n); int i=1; int up=0; int left=0; int right=n-1; int down=n-1; while(i<=n*n) { for(int j=left;j<=right;j++) { m[up][j]=i++; } up++; for(int j=up;j<=down;j++) { m[j][right]=i++; } right--; for(int j=right;j>=left;j--) { m[down][j]=i++; } down--; for(int j=down;j>=up;j--) { m[j][left]=i++; } left++; } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { printf("%d ",m[i][j]); } printf("\n"); } return 0; }