想了一天的题
各位大哥大姐们:小弟快学完了C语言了,有一道题想了一天都没有做出,希望你们也来一起想想吧!
设计一个魔方阵,用户输入一个奇数m后。便可得到此奇数组成的m*m的数字方阵,且由1到m平方间的数字组成,每个数只能用一次,此数字方横着竖着或对角线斜着都相等。如:输入3时会出现 8 1 6
3 5 7
4 9 2
----------------解决方案--------------------------------------------------------
改错
后面一句忘记打“之和”了,就是横着、竖着、以对角线斜着数字加起来之和要相等 ----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int a[32][32],i,j,k,p,n;
p=1;
while(p==1)
{
printf("Enter n(n=1~25)");
scanf("%d",&n);
if((n!=0)&&(n<=25)&&(n%2!=0))
p=0;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if((i<1)&&(j>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");
}
}
----------------解决方案--------------------------------------------------------
谢谢你了
3楼这位大哥真是太牛了,我想了一天了,头都要想炸了,就是想不出什么好的算法,没想到我下课来看,就写好了,我还要好好像你学习才行啊! ----------------解决方案--------------------------------------------------------
额```
LS真会拍马屁
----------------解决方案--------------------------------------------------------
写程序就象写家书 --------》我们数据结构老师
----------------解决方案--------------------------------------------------------
LS的,说得好好玩~~~~~~
----------------解决方案--------------------------------------------------------