#include
#define N 15
void main()
{
a:;
int a[N][N],t;
int i,j,m,n,c,b,k=1;
printf("输入魔方阵阶数(不超过%d):",N);
scanf("%d",&t);
if(t<2||t>17)
{
printf("输入不合法,请重新输入!\n\n");
goto a;
}
if(t%2==0)
{
printf("偶数阶矩阵不存在魔方阵!\n\n");
goto a;
}
i=t/2+2;
j=t/2+1;
for(c=1;c<=t;c++)
{
m=i;
n=j;
for(b=1;b<=t;b++)
{
a[m][n]=k;
++k;++m;++n;
if(m>t)
m=1;
if(n>t)
n=1;
}
i=i+1;
j=n;
if(i>t)
i=1;
}
for(m=1;m<=t;m++)
{
for(n=1;n<=t;n++)
printf("%5d",a[m][n]);
printf("\n\n");
}
goto a;
}