打印魔方阵。。所谓魔方阵 是指这样的 方阵,它的每一行和每一列和对角线之和均相等。
规律如下
我写了这样的程序。。编译通过,,但运行后结果都不对,,请问错在哪里,。。。
#include<stdio.h>
main()
{int a[20][20],i,j,k,m,n;
printf("输入n:");
scanf("%d",&n);
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
a[i][j]=0; //赋初值0
j=n/2+1;
a[1][j]=1; //把1放好
i=1;
for(k=2;k<=m;k++)
{ i=i-1;
j=j+1;
if((i<1)&&(j>n)) //这个是第一行,第N列数,变化过来的
{i=i+2;
j=j-1;
}
else
{
if(i<1) i=n;
if(j>n) j=1;
}
if(a[i][j]==0) a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k; //这个是位置上以有数字。
}
}
for(i=1;i<=n;i++) //输出
{ for(j=1;j<=n;j++)
printf("%4d",a[i][j]);
printf("\n");}
}