#include<stdio.h>
int main(){
int n,i,j,k,num=1;
scanf("%d",&n);
int a[n][n],m=n-1,u,v,l,t,s=0;
if(n%2==0)
t=n/2;
else
t=n/2+1;
for(v=1;v<=t;v++,s++,m--)
{
for(i=s;i<=m;i++){
a[s][i]=num;
num++;
}
for(j=s+1;j<=m;j++){
a[j][m]=num;
num++;
}
for(k=m-1;k>=s;k--){
a[m][k]=num;
num++;
}
for(u=m-1;u>=s+1;u--){
a[u][s]=num;
num++;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d",a[i][j]);
}
printf("\n");
}
}
能力有限,代码不够简洁,希望各位大佬批评指正。