#include<stdio.h>
main()
{
int a[16][16],i,j,k,p,m,n ;
/*初始化*/
p=1 ;
while(p==1)
{
printf(" n.");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n>0))
{
printf("d\n",n);
p=0 ;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[j]=0 ;
/*建立魔方*/
j=n/2+1 ;
a[1][j]=1 ;
for(k=2;k<=n*n;k++)
{
i=i-1 ;
j=j+1 ;
if((i<1)&&(j>n))
{
i=i+2 ;
j=j-1 ;
}
else
{
if(i<1)i=n ;
if(j>n)j=1 ;
}
if(a[j][j]==0)
a[j]=k ;
else
{
i=i+2 ;
j=j-1 ;
a[j]=k ;
}
}
/*输出*/
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("3d",a[j]);
printf("\n");
}
getch();
}
main()
{
int a[16][16],i,j,k,p,m,n ;
/*初始化*/
p=1 ;
while(p==1)
{
printf(" n.");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n>0))
{
printf("d\n",n);
p=0 ;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[j]=0 ;
/*建立魔方*/
j=n/2+1 ;
a[1][j]=1 ;
for(k=2;k<=n*n;k++)
{
i=i-1 ;
j=j+1 ;
if((i<1)&&(j>n))
{
i=i+2 ;
j=j-1 ;
}
else
{
if(i<1)i=n ;
if(j>n)j=1 ;
}
if(a[j][j]==0)
a[j]=k ;
else
{
i=i+2 ;
j=j-1 ;
a[j]=k ;
}
}
/*输出*/
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("3d",a[j]);
printf("\n");
}
getch();
}