#include "stdio.h"
#define M 100
main()
{
int a[M][M];
int i,j,k;
int o=0,N;
//printf("plese input the N:");
scanf("%d",&N);
//clrscr();
/*数组的初始化*/
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=0;
i=0;
j=0;
a[i][j]=1;
for(k=2;k<=N*N;)
{
switch(o)
{
case 0:
if(i+1 < N && a[i+1][j]==0)
i++;
else
{o++; o%=4;continue;}
break;
case 1:
if(j+1 < N && a[i][j+1]==0)
j++;
else
{o++; o%=4;continue;}
break;
case 2:
if(i-1 >=0 && a[i-1][j]==0)
i--;
else
{o++; o%=4;continue;}
break;
case 3:
if(j-1 >=0 && a[i][j-1]==0)
j--;
else
{o++; o%=4;continue;}
break;
}
a[i][j]=k;
k++;
}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%4d",a[j][i]);
printf("\n\n");
}
}
#define M 100
main()
{
int a[M][M];
int i,j,k;
int o=0,N;
//printf("plese input the N:");
scanf("%d",&N);
//clrscr();
/*数组的初始化*/
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=0;
i=0;
j=0;
a[i][j]=1;
for(k=2;k<=N*N;)
{
switch(o)
{
case 0:
if(i+1 < N && a[i+1][j]==0)
i++;
else
{o++; o%=4;continue;}
break;
case 1:
if(j+1 < N && a[i][j+1]==0)
j++;
else
{o++; o%=4;continue;}
break;
case 2:
if(i-1 >=0 && a[i-1][j]==0)
i--;
else
{o++; o%=4;continue;}
break;
case 3:
if(j-1 >=0 && a[i][j-1]==0)
j--;
else
{o++; o%=4;continue;}
break;
}
a[i][j]=k;
k++;
}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%4d",a[j][i]);
printf("\n\n");
}
}