C语言问题,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:53:24
题目:输出"魔方阵".所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等,例如,三阶魔方阵为:
8 1 6
3 5 7
4 9 2

麻烦帮我写一下代码,我不会,谢谢

#define N 9 //N为阶数
#include <stdio.h>
int main(void)
{
int a[N][N]={0};
int i,j,n;
i=0;
j=(N-1)/2;
n=0;
while(n<N*N)
{
n++;
a[i][j]=n;
j=(j+1+N)%N;
i=(i-1+N)%N;
if(a[i][j]!=0)
{
j=(j-1+N)%N;
i=(i+2+N)%N;
}
}
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("\n");
}
getchar();
}

有大神写出来了,运行过了是正确的

对每个元素有没有什么限制的?

我想了想我也不会

麻烦~~~