魔方阵是指元素为自然数1,2,…N2的N×N,每个元素值都不相等,每行、每列以及主、副对角线上各N个元素之和都相等。如3×3魔方阵:
8 1 6
3 5 7
4 9 2
奇数阶魔方阵的生成方法如下:
(1) 第一个位置在第一行正中;
(2) 新位置应当处于最近一个插入位置右上方,但如右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置,如超出右边界则新位置取应选行的最左一个位置;
(3) 若最近一个插入元素为N的整倍数,则选下面一行同列上的位置为新位置。
#include <stdio.h>
#define MAXSIZE 15
int magic[MAXSIZE][MAXSIZE];
int cur_i=0,cur_j=0;
main()
{int count,size=0,i,j;
while((size%2)==0)
{
printf(“\nenter ODD number:”);
scanf(“%d”,&size);
}
cur_j=(size-1)/2;
for(count=1;count<=size*size;count++)
{
magic[cur_i][cur_j]=count;
if((count%size)==0)
{
cur_i+=1;
continue;
}
cur_i=cur_i-1;
cur_j=cur_j+1;
if(cur_i<0)
cur_i+=size;
else if(cur_j==size)
cur_j-=size;
}
for(i=0;i<size;i++)
{
printf(“\n”);
for(j=0;j<size;j++)
printf(“%5d”,magic[i][j]);
}
}
此程序参见《中国计算机软件专业技术资格和水平考试统编辅导教材》(程序员级、高级程序员级)《程序设计第二版》张福炎主编,清华大学出版社,1996年5月第二版,P96
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
呵呵,看过了,学习了。挺不错的!
数据结构怎么学习呢?