输出魔方阵---C语言
输出魔方阵
例如,三阶魔方阵为
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语言相关推荐
- 用c语言输出魔方阵答案,C语言——输出“魔方阵”(带解析)
魔方阵:每一行 每一列 对角线之和均相等,要求输出n阶魔方阵 总结的五大规律: 1.把 1 放第一行中间 2.行-1 列+1 3. if(上个数1行n列) 放它下边 (i=i+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 ...
- 重温c语言 谭浩强 输出魔方阵 目前只做了基数魔方 以及 双偶幻方,单偶同理
基数魔方阵 1>第一行中间位取值1 2>然后 后面的n*n -1 个数按以下规则 下一个数是前一个数的 行-1 列 +1 若是行是0 则为n-1:若列是n-1,则为0:若定位后的pos ...
- C语言学习之输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
输出"魔方阵".所谓魔方阵是指这样的方阵,它的每一行.每一列和对角线之和均相等. 例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 要求输出1-n²的自然数构成的魔方阵. # ...
- 判断魔方阵c语言程序设计_魔方阵算法及C语言实现
1 魔方阵概念 2填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5-.魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是 ...
- 奇数魔方阵c语言程序设计,《C语言程序》课程设计报告书魔方阵程序设计
<<C语言程序>课程设计报告书魔方阵程序设计>由会员分享,可在线阅读,更多相关<<C语言程序>课程设计报告书魔方阵程序设计(17页珍藏版)>请在人人文库 ...
- 判断魔方阵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 ...
- 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-魔方阵 问题分 ...
- 5阶魔方阵c语言程序设计,五阶魔方阵源代码c语言课到程设计.docx
五阶魔方阵源代码c语言课到程设计 主函数 #include #include #include # include "wenjian.c" # include "sanj ...
最新文章
- 聊聊storm的AggregateProcessor的execute及finishBatch方法
- Django中的模型继承
- C++函数中那些不可以被声明为虚函数的函数
- 哪个牌子的平板电脑好_重庆智能会议平板哪个牌子好?软硬件好才是真的好!...
- Effective C++学习第六天
- mysql新密码认证_MySQL原生密码认证
- keep公众号就“借鉴”原创文章致歉:将停更一周
- 设计灵感|引导页设计中如何借助图形来展现场景?
- java redirect 超时_java – Spring Security 3.0重定向到超时的页面
- Java加密压缩文件
- 左耳朵耗子的技术书籍建议
- 计算机笔记本摄像头无法使用,笔记本摄像头不能用怎么回事 笔记本摄像头不能用解决方法...
- 直通串口线和交叉串口线
- java计算机毕业设计婚恋网站(附源码、数据库)
- 【2019.05】python 爬取拉钩数据(静态+动态)
- C#asp.net旅游网站系统
- c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...
- 写段小程序,为自己的配置加个密
- Linux环境下运行matlab以及执行m文件
- 用Java实现一个简易的植物大战僵尸游戏
热门文章
- JMeter循环控制器的使用
- HDU1847解题思路
- vue+video.js播放.m3u8地址视频
- 【CodeSmith】The System.Data.SQLite library is not installed on this computer,不能使用SQLite解决办法
- 如何恢复u盘数据?数据恢复,就看这4个方法!
- 类数组与数组的区别及相互转化
- 不止是企业网盘,亿方云聚焦数据战略的背后
- js获取class元素的个数
- java检查版本更新失败_华为审核被拒:检查HMS Core更新失败
- 云架构师——云计算成功部署的重要角色