| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:"魔方阵"问题
只看楼主 加入收藏
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
 问题点数:0 回复次数:3 
"魔方阵"问题
3阶魔方阵:
      8 1 6
      3 5 7
      4 9 2
要求用C语言编程得到由1到n*n的自然数构成的魔方阵.请教高手,请给出源代码.
搜索更多相关主题的帖子: 魔方阵 
2007-10-15 18:48
白居易
Rank: 1
来 自:北京
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-5-28
收藏
得分:0 
这是最近我看到的代码
#include <stdio.h>
void main()
{
int array[16][16];
int i,j,k,m,n;
m=1;
while(m==1)
{
printf("请输入n(0<n<=15),n是奇数)\n");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n%2!=0))
{
printf("矩形阶数是%d\n",n);
m=0;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
array[i][j]=0;
j=n/2+1;
array[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(array[i][j]==0)
array[i][j]=k;
else
{
i=i+2;
j=j-1;
array[i][j]=k;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%5d",array[i][j]);
printf("\n");
}
}

革命尚未成功,同志仍需努力
2007-10-15 19:54
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 

最近在这个论坛刚看到的


#include <stdio.h>
#define MAX 101
int main(void)
{
long nList[MAX][MAX],n=0,n1,n2;
while(!(n&1)){scanf(\"%d\",&n);} //输入阶数
for(n2=n*n,n1=0;n1<n2;n1++) //计算生成
{
nList[(n1*(n-1)+(n1/n)*2)%n][(n1+(n>>1)-n1/n)%n]=n1+1;
}
for(n2=0;n2<n;n2++) //结果输出
{
for(n1=0;n1<n;n1++)printf(\"%4d\",nList[n2][n1]);
printf(\"\n\");
}
return 0;
}


注:不存在超过4阶的偶数阶魔方阵


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-15 20:01
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
得分:0 

谢谢两位啊,我好好研究研究

2007-10-15 21:29
快速回复:"魔方阵"问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016434 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved