大家帮我看看魔方阵问题错在哪了
#include<stdio.h>#include<stdlib.h>
#define ERROR 0
#define OK 1
int main()
{
int m;
scanf("%d",m);
if(m%2==0||m==1) return ERROR;
else return OK;
int a[m][m],i,j,k;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
a[i][j]=0;
} /*令所有元素都为0*/
j=(m-1)/2;
a[0][j]=1; /*令第一行中间一列元素为1*/
for(k=2;k<=m*m;k++)
{
if((i-1+m)%m!=0)
{
i=(i-1+m)%m;
if((j-1+m)%m!=0)
j=(j-1+m)%m;
}
if (a[i][j]!=0)
{
i=(i+2)%m;
j=(j+1)%m;
}
a[i][j]=k;
}
for(i=0;i<m;i++) /*输出数组*/
{
for(j=0;j<m;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
}