请教:魔方阵问题
#include "stdio.h"main()
{
int a[20][20];
int i=0,j=0,k,n;
printf("input the number(1-20):");
scanf("%d",&n);
a[i][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i==-1) i=n-1;
if(j==n+1) j=0;
if(a[i][j]!='\0')
{
if(i==n-2) i=0;
else if(i==n-1) i=1;
else i=i+2;
if(j==0) j=n-1;
else j=j-1;
a[i][j]=k;
}
else a[i][j]=k;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("%d ",a[i][j]);
if(j==n-1) printf("\n");
}
}
按照我的思路,随便输入1-20之间的数 n ,接着输出 n 阶魔方阵,结果却是错误的,请各位帮忙看一下,程序错在了什么地方?谢谢!