#include<stdio.h> int main(){ int n,a[20][20],i,j,d,r=0,count=1; scanf("%d",&n); d=n; while(count<=n*n) { for(i=r;i<d;i++)//向右 a[r][i]=count++; for(i=r+1;i<d;i++)//向下 a[i][d-1]=count++; for(i=d-2;i>r-1;i--)//向左 a[d-1][i]=count++; for(i=d-2;i>r;i--)//向上 a[i][r]=count++; r++;//缩小范围在次循环 d--; } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; }