这是谭浩强教授课本上的
输出魔方阵.所谓魔方阵是指这样的方阵,它的每一行,每一列,和对角线之和均相等.例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求输出1到N方的自然数构成的魔方阵.
不求大家把答案告诉给我,只是告诉给我思路.
我连排魔方的方法都不会,别说编程了,呵呵!
#define N 3
main()
{int a[N][N];
int i,j,oi,oj,k;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=0;
i=0;
j=(N-1)/2;
a[i][j]=1;
for(k=2;k<=N*N;k++)
{oi=i;
oj=j;
i--;
j++;
if(i<0) i=N+i;
if(j>N-1) j=0;
if(a[i][j]==0) a[i][j]=k;
else
{i=oi+1;
j=oj;
a[i][j]=k;}
}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%d\t ",a[i][j]);
printf("\n");
}
}
[此贴子已经被作者于2006-3-9 9:05:46编辑过]