c语言实现奇数魔方阵

本文介绍了如何使用C语言实现奇数阶魔方阵的算法,遵循魔方阵的排列规则,并提供了详细代码。对于不熟悉魔方阵或编程实现的同学,可以邮件至jiankailv@foxmail.com进行咨询。
摘要由CSDN通过智能技术生成

魔方阵定义:魔方阵是一个方阵,它的每一行、每一列和对角线之和均相等。

例如存在三阶魔方阵:

8   1   6

3   5   7

4   9   2

魔方阵中各数的排列规则:

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

(2)从2开始直到n*n止各数依次按照下列规则存放:每一个数存放的行比前一个数的行数减1,列数加1(例如上述的魔方阵中,6在5的上一行下一列)

(3)当上一个数的行数为1时,下一个数的行数为n,列数加1。(例如上述的魔方阵中,1在第一行,则2应该放在最后一行,列数同样加1)

(4)当上一个数的列数为n时,下一个数的行数减1,列数应该为1。(例如在上述的魔方阵中,2在第三行最后一列,则3应该放在第二行第一列)

(5)如果按照上面规则确定的位置上已经有数,或者上一个数是第一行第n列的时候,则应该把下一个数放在上一个数的下面。(例如在上述的魔方阵中,按照规定,4应该放在第1行第2列,但该位置已被1占据,所以4就放在3的下面。由于6是第1行第3列(即最后一列),故7放在6的下面)

详细代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[16][16],i,j,k,p,n;
    p=1;

    //Input
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值