#include
int main()
{
int a[100][100],b,c,d=2,f=1,g,h,e;
scanf("%d",&b);
e=b;
c=b/2;
h=b/2;
a[c][c]=1;
while(d<b*b)
{
for(g=0;g<f;g++,d++)
a[++c][h]=d;
for(g=0;g<f;g++,d++)
a[c][--h]=d;
f++;
for(g=0;g<f;g++,d++)
a[--c][h]=d;
for(g=0;g<f;g++,d++)
a[c][++h]=d;
f++;
}
for(d=0;d<e;d++)
{
printf("\n");
for(c=0;c<e;c++)
printf("%3d",a[d][c]);
}
}
原理输入3 输出5 6 7
4 1 8
3 2 9
输入7以下都可以 但是输入7或7以上就炸了不知道为什么
还有有的地方不简洁改一下