输出魔方阵

例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2

  • 所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等
  • 解题思路:魔方阵中各数的排列规律,魔方阵的阶数应该为奇数。
  • 将1放在第1行中间一列
  • 从2开始直到n*n止各数依次按下:每一个数存放的行比前一个数的行数减1,列数加1.
  • 如果上一数的行为为1,则下一个数的行数为n
  • 当上一个数的列数为n时,下一个数的列数应为1,行数减1
    按上面的规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数的下面
#include<stdio.h>
#define N 3
int main()
{int a[20][20]={0};//定义二维数组int i,j,n,k; //定义整型变量i=1;//赋值printf("请输入阶数为1~15之间的奇数:\n");//提示语句scanf("%d",&n);//输入魔方阵的维度nj=n/2+1; // j是维度的一半加1.a[i][j]=1; //确定第一排的中间一个数为1for(k=2;k<=n*n;k++)//已经确定1的位置了,再循环确定2~n*n的位置{i=i-1; //挪位,竖排往上挪一位。j=j+1; //挪位,横排往右挪一位。if((i<=0)&&(j<=n)) //如果竖排挪到顶,同时横排还没有超过最右,竖排就到从最下再继续。{i=n;}if((i<=0)&&(j>n)) //如果竖排挪到顶,同时横排超过最右,竖排往下挪两位,横排往左移一位。{i=i+2;j=j-1;}if(j>n) //如果只有横排超过最右,横排挪到左边第二行。{j=1;}if(a[i][j]==0){a[i][j]=k; //如果这个位置还没有赋值,那么赋值为k。}else  //已经赋值过了。那么竖排往下挪两位,横排往左移一位,再赋值为k。{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;i<=n;i++) //循环输出位置。{for(j=1;j<=n;j++){printf("%3d ",a[i][j]);}printf("\n");//换行}
}

运行结果如图

输出魔方阵---C语言相关推荐

  1. 用c语言输出魔方阵答案,C语言——输出“魔方阵”(带解析)

    魔方阵:每一行  每一列  对角线之和均相等,要求输出n阶魔方阵 总结的五大规律: 1.把  1  放第一行中间 2.行-1   列+1 3. if(上个数1行n列)   放它下边 (i=i+2;  ...

  2. 用c语言输出魔方阵答案,如何用C语言输出一个1—16 组成的4*4的魔方阵

    int b,c,d,e,f; printf("请输入魔方阵的阶数:"); scanf("%d",&b); e=b/2; d=0; for(c=1;c&l ...

  3. 重温c语言 谭浩强 输出魔方阵 目前只做了基数魔方 以及 双偶幻方,单偶同理

    基数魔方阵 1>第一行中间位取值1 2>然后 后面的n*n -1 个数按以下规则 下一个数是前一个数的  行-1 列 +1  若是行是0 则为n-1:若列是n-1,则为0:若定位后的pos ...

  4. C语言学习之输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。

    输出"魔方阵".所谓魔方阵是指这样的方阵,它的每一行.每一列和对角线之和均相等. 例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 要求输出1-n²的自然数构成的魔方阵. # ...

  5. 判断魔方阵c语言程序设计_魔方阵算法及C语言实现

    1 魔方阵概念 2填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5-.魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是 ...

  6. 奇数魔方阵c语言程序设计,《C语言程序》课程设计报告书魔方阵程序设计

    <<C语言程序>课程设计报告书魔方阵程序设计>由会员分享,可在线阅读,更多相关<<C语言程序>课程设计报告书魔方阵程序设计(17页珍藏版)>请在人人文库 ...

  7. 判断魔方阵c语言程序设计_C语言实现魔方阵代码及解析

    原标题:C语言实现魔方阵代码及解析 问题描述 编写程序,实现如下表所示的5-魔方阵. 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 1 ...

  8. C语言实现魔方阵代码及解析

    问题描述 编写程序,实现如下表所示的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 5-魔方阵 问题分 ...

  9. 5阶魔方阵c语言程序设计,五阶魔方阵源代码c语言课到程设计.docx

    五阶魔方阵源代码c语言课到程设计 主函数 #include #include #include # include "wenjian.c" # include "sanj ...

最新文章

  1. 聊聊storm的AggregateProcessor的execute及finishBatch方法
  2. Django中的模型继承
  3. C++函数中那些不可以被声明为虚函数的函数
  4. 哪个牌子的平板电脑好_重庆智能会议平板哪个牌子好?软硬件好才是真的好!...
  5. Effective C++学习第六天
  6. mysql新密码认证_MySQL原生密码认证
  7. keep公众号就“借鉴”原创文章致歉:将停更一周
  8. 设计灵感|引导页设计中如何借助图形来展现场景?
  9. java redirect 超时_java – Spring Security 3.0重定向到超时的页面
  10. Java加密压缩文件
  11. 左耳朵耗子的技术书籍建议
  12. 计算机笔记本摄像头无法使用,笔记本摄像头不能用怎么回事 笔记本摄像头不能用解决方法...
  13. 直通串口线和交叉串口线
  14. java计算机毕业设计婚恋网站(附源码、数据库)
  15. 【2019.05】python 爬取拉钩数据(静态+动态)
  16. C#asp.net旅游网站系统
  17. c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...
  18. 写段小程序,为自己的配置加个密
  19. Linux环境下运行matlab以及执行m文件
  20. 用Java实现一个简易的植物大战僵尸游戏

热门文章

  1. JMeter循环控制器的使用
  2. HDU1847解题思路
  3. vue+video.js播放.m3u8地址视频
  4. 【CodeSmith】The System.Data.SQLite library is not installed on this computer,不能使用SQLite解决办法
  5. 如何恢复u盘数据?数据恢复,就看这4个方法!
  6. 类数组与数组的区别及相互转化
  7. 不止是企业网盘,亿方云聚焦数据战略的背后
  8. js获取class元素的个数
  9. java检查版本更新失败_华为审核被拒:检查HMS Core更新失败
  10. 云架构师——云计算成功部署的重要角色