| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:[原创]幻方[好象不是魔方哦]
只看楼主 加入收藏
取消关键字高亮
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
 问题点数:0 回复次数:0 
[原创]幻方[好象不是魔方哦]

幻方是一个方形整数数组,它每行的和,每列的和及两条对角线上的和全部相等,下面的图1.5给出幻方 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

(2)编写程序用下面的方法生成一个幻方,此方法仅当正方形大小是奇数时可用。开始时将1放在顶行的中间位置,将后续整数2,3,....分别写入前个数字所在位置的上行偏右一格。当到达顶行时(比如1就在顶行),返回到底行继续前进,就好像底行是直接在顶行上面一样。当到达最右列的时,继续到最左列,就好像最左列直接在最右列的右边。当到达的位置已被占据时,就直接在前一个数的下面位置处插入新数。按照这种方法构造的5×5幻方如图1.5中所示。 #include<stdio.h> main() {int i,j,k,a[9][9],x,count=0; printf("请输入小于9的基数:\n"); scanf("%d",&x); i=0; j=x/2; for(k=1;k<=x*x;) { a[i][j]=k++; if((k-1)%x==0) i++; //一般等于5 10 15 20 25 else if(i==0) {i=x-1;j++;} //最上面的时候 else if(j==x-1) {i--;j=0;} //在最左边的时候 else {i--;j++;} } for(i=0;i<x;i++) //用来输出 { for(j=0;j<x;j++){ printf("%d\t",a[i][j]); count++; if(count==x) { printf("\n"); printf("\n"); count=0; } } } }

图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 魔方 
2005-05-13 08:29
快速回复:[原创]幻方[好象不是魔方哦]
数据加载中...
 
   



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

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