我按着课本抄了一个求魔方阵的程序,但是执行结果为什么不对啊?求高人指点
求魔方阵:#include<stdio.h>
void main()
{
int a[15][15],i,j,k,p,n;
p=1;
while(p==1)
{
printf("enter n(n=1 to 15):");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n%2!=0))
p=0;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
j=n/2;
a[0][j]=1;
for(k=2;k<=n*n;k++)
{ i=i-1;j=j+1;
if((i<0)&&(j>n-1))
{i=i+2;j=j-1;}
else
{if(i<0)i=n-1;
if(j>n-1)j=0;}
if(a[i][j]==0)
a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=0;i<n;i++)
{
for(j=0;i<n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
执行是出来的结果:
enter n(n=1 to 15):5
17 24 1 8 15-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460 23 5 7 14 16-858993460
-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460
-858993460 4 6 13 20 22-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460 10 12 19 21 3
-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460
-858993460-858993460 11 18 25 2 9-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-8589
93460-858993460-858993460-858993460-858993460-858993460242404415083480 165695
126562032997162644 0 02147315712 0 0 02424832 02423984 4242
4112150774961001253000 024240521508303924240641991241068214731571224241282000
10750921473157122000715929 0 02147315712 0 0 02424076 0 -119
998230855402529 024241522000107464150776462147315712 0 0 0 015077
6462147315712 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0请按任意键继续. . .