C语言:奇数魔方阵的实现

本文介绍了如何使用C语言实现奇数阶魔方阵,详细阐述了实现步骤,包括将数字1放置在首行中间列,遵循特定行移位和列增规则填充其余数字,以及处理边界条件来确保正确布局。
摘要由CSDN通过智能技术生成

1、奇数阶魔方阵

奇阶魔方阵的实现步骤:

(1)将“1”放在第一行的中间一列;

(2)从“2”开始直到n*n为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减一,列数同样加1.

(3)如果上一个数的列数为1,则下一个数的行数为n(最后一行)

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

(5)如果按上面规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数的下面

//6-7:奇数阶魔方阵:
//1、1放在第一行中间
//2、后面的数字放在当前数字的上一行、后一列
//3、如果当前位置已经有数据,则放在前一个数字的下一行同列,即行值+2,列值+1
/*
void MagicSquare()
{
#define ROW 3
	int arr[ROW][ROW] = {0};   //将魔方阵的各行各列初始化为0
	int currow = 0;            //当前行:目前为第0行
	int curcol = ROW/2;        //当前列:目前为第1列
	arr[currow][curcol] = 1;   //先将数字1放入第0行中间
	for(int i = 2;i <= ROW * ROW;i++)  //依次将后面的8个数字插入到魔方阵中
	{
		//currow = currow - 1;   //后面的数字放在当前数字的上一行、下一列
		//if(currow < 0)         //当上一个数字为
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值