8 1 6
3 5 7
4 9 2
求输出1~n*n的自然数构成的魔方阵.
谢谢
#include "stdio.h"
#define N 3
main()
{
int a[N][N];
int i,j,t,temp,k;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)/*先将数组清零*/
a[i][j]=0;
}
a[0][N/2]=1;
i=0;
j=N/2;
for(k=2;k<=N*N;k++)
{
t=i;/*保存前数地址,每个数放在前个数行数-1列数+1的位置,*/
temp=j;
i--;
j++;
if(i<0)
i=N-1;
if(j>N-1)
j=0;
if(a[i][j]==0)
a[i][j]=k;
else
{
i=t+1;
j=temp;
a[i][j]=k;
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%3d",a[i][j]);
printf("\n");
}
/*
getch();
*/
}
[此贴子已经被作者于2007-5-24 8:51:39编辑过]