【C语言典例】——day3:设计魔方阵(数组)-创新互联-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

【C语言典例】——day3:设计魔方阵(数组)-创新互联

※※※大家好!我是同学〖森〗,一名计算机爱好者,今天让我们进入刷题模式。若有错误,请多多指教。

👍 点赞 ⭐ 收藏 📝留言 都是我创作的大的动力!

为锦州等地区用户提供了全套网页设计制作服务,及锦州网站建设行业解决方案。主营业务为网站设计、成都网站建设、锦州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

目录

魔方阵(magic matrix)

题目描述:

问题分析:

程序源码:

运行结果:

举一反三: 


魔方阵(magic matrix)

魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2、…、n的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。

幻方,有时又称魔方(该称呼现一般指立方体的魔术方块)或纵横图,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。通常幻方由从1到N2的连续整数组成,其中N为正方形的行或列的数目。因此 N阶幻方有N行N列,并且所填充的数为从1到N2。 [1] 

幻方可以使用N阶方阵来表示,方阵的每行、每列以及两条对角线的和都等于常数

,如果填充数为1,2,……,N^2。

,那么有

⒈何谓矩阵?矩阵就是由方程组的系数及常数所构成的方阵。把用在解线性方程组上既方便,又直观。

⒉何谓n阶方阵?若一个矩阵是由n个横列与n个纵行所构成,共有n*n个小方格,则称这个方阵是一个n阶方阵。

⒊何谓魔方阵? 定义:由n*n个数字所组成的n阶方阵,具有各对角线,各横列与纵行的数字和都相等的性质,称为魔方阵。而这个相等的和称为魔术数字。若填入的数字是从1到n*n,称此种魔方阵为n阶正规魔方阵。

⒋最早的魔方阵相传古时为了帮助治水专家大禹统治天下,由水中浮出两只庞大动物背上各负有一图,只有大禹才可指挥其中之由龙马负出的为河图,出自黄河;另一由理龟负出的洛书出自洛河。

⒌最早的四阶魔方阵相传是刻在印度一所庙宇石上,年代大约是十一世纪。古代印度人十分崇拜这种幻方,至今从古神殿的遗址,墓碑上常常还可以发现四阶幻方的遗迹。

⒍欧洲最早的魔方阵是公元1514年德国画家Albrecht Dure在他著名的铜板画Melencolia上的4×4幻方,有趣的是,他连创造年代(1514)也镶在这个方阵中,而且上下左右,四个小方阵的和皆为34,是欧洲最古老的幻方。

题目描述:

打印5阶幻方即它的每一行,每一列和对角线之和均相等。

问题分析:

(1)将1放在第一行中间一列。

(2)从2开始直到25各数依次按:

(3)每一个数存放的行比前一个数的行数减1,列数加1.

(4)如果上一个数的行数为1,则下一个数的行数为5,列数加1。

(5)当上一个数的列数为5时,下一个数的列数应为1,行数减1.

(6)如果按上面步骤确定的位置上已经有数(本题中不为0),或者上一个数是第1行第5列时,则把下一个数放在上一个数的下面。

程序源码:
#include#includeint main()
{
	system("COLOR FD");    //改变字体背景颜色
	int i, j, a[6][6] = { 0 };
	int x = 1, y = 3;		//1的位置
	for (i = 1; i<= 25; i++)
	{
		a[x][y] = i;
		if (1 == x && 5 == y)
	//上一个数是第一行第五列时,则把下一个数放在它的下面
		{
			x += 1;
			continue;	//结束本次循环
		}
		if (1 == x)
			x = 5;	//当上一个数是第一行时,下一个数是第五行。
		else
			x--;	//否则行数减一。
		if (5 == y)
			y = 1;	//当上一个数是第五列时,下一个数是第一列。
		else
			y++;	//否则列数加一。
		if (a[x][y] != 0)	//判断经过上面步骤确定的位置是否有非零数。
		{
			x = x + 2;		//条件为真行数加二,列数减一。
			y = y - 1;
		}
	}
	for (i = 1; i< 6; i++)		//输出二维数组
	{
		for (j = 1; j< 6; j++)
			printf("%4d", a[i][j]);
		printf("\n");
	}

	return 0;
}
运行结果:

举一反三: 

在本程序的基础上编程实现输入n阶幻方,n的值由用户从键盘中输入。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:【C语言典例】——day3:设计魔方阵(数组)-创新互联
文章路径:http://kswsj.cn/article/copeie.html

其他资讯