#include <stdio.h>
#define N 10
int main(){
int v[N][N],//数组
i,//索引
p=0,//模式
l=1,//重复次数
y=(N-1)/2,//y坐标
x=(N-1)/2,//x坐标
y_[]={1,0,-1,0},//y模式
x_[]={0,1,0,-1};//x模式
for(i=1;i<=N*N;l=++p/2+1){
while(l--&&i<=N*N){
v[y][x]=i++;
y+=y_[p&3];//y位置变换
x+=x_[p&3];//x位置变换
}
}
for(i=0;i!=N*N;++i)
printf("%5d%c",v[i/N][i%N],(i+1)%N?' ':'\n');//输出
return 0;
}
#define N 10
int main(){
int v[N][N],//数组
i,//索引
p=0,//模式
l=1,//重复次数
y=(N-1)/2,//y坐标
x=(N-1)/2,//x坐标
y_[]={1,0,-1,0},//y模式
x_[]={0,1,0,-1};//x模式
for(i=1;i<=N*N;l=++p/2+1){
while(l--&&i<=N*N){
v[y][x]=i++;
y+=y_[p&3];//y位置变换
x+=x_[p&3];//x位置变换
}
}
for(i=0;i!=N*N;++i)
printf("%5d%c",v[i/N][i%N],(i+1)%N?' ':'\n');//输出
return 0;
}