魔方阵(C语言)

一、魔方阵规律;

8    1    6

3    5    7

4    9    2

魔方阵中各数的排列规律如下:

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

(2)从2开始直到n×n止,各数依次按此规则存放:每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列)。

(3)如果上一数的行数为1,则下一个数的行数为n(指最下一行)。例如,1在第1行,则2应放在最下一行,列数同样加1。

(4)当上一个数的列数为n时,下一个数的列数应为1,行数减1。例如,2在第3行最后一列,则3应放在第2行第1列。

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

二、N-S流程图;

三、运行结果;

四、源代码;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>int main()
{//初始化变量值;int a[15][15], p = 0, i, j, k, n;//获取输出几阶魔法阵;printf("请输入n的值:");//循环判断n为小于15的奇数;while (p == 0){//获取用户输入数据;scanf("%d", &n);//判断;if (n % 2 != 0){p = 1;}}//填充矩阵数据;for (i = 1; i <= n; i++){//列;for (j = 1; j <= n; j++){//填充;a[i][j] = 0;}}//赋值;j = n / 2 + 1;a[1][j] = 1;//实现魔方阵;for (k = 2; k < n * n; k++){//运算;i = i - 1;j = j + 1;//判断是否为第一行最后一列;if ((i < 1) && (j > n)){i = i + 2;j = j - 1;}else{//是否为第一行;if (i < 1){i = n;}//是否为最后一列;if (j > n){j = 1;}}//判断数据存储位置是否为空;if (a[i][j] == 0){//填充;a[i][j] = k;}else{i = i + 2;j = j - 1;a[i][j] = k;}}//输出魔方阵;for (i = 1; i <= n; i++){//列;for (j = 1; j <= n; j++){//输出;printf("%5d", a[i][j]);}//换行;printf("\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌推出10门免费AI课程,无需教科书及费用

谷歌面向小白以及开发者分别推出了不同的AI课程~ 包含初级、中级和高级。课程章节大致包括&#xff1a;&#xff08;含教学视频、参考材料、测验&#xff09; 基础入门&#xff1a;45分钟深入了解生成式AI 简单实操&#xff1a;30分钟掌握大语言模型 了解如何释放生成式 AI S…

在K8S中,静态、动态、自主式Pod有何区别

在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;静态Pod、自主式Pod和动态Pod是不同管理方式下的Pod类型&#xff0c;它们的区别主要体现在创建和管理方式上&#xff1a; 静态Pod&#xff1a; 静态Pod是由kubelet直接管理的&#xff0c;其配置文件存储在节点本地而…

网络工程师证书2023年下半年第一批综合知识

网络工程师证书2023年下半年第一批综合知识 在5G技术中大规模MIMO是指在基站端使用数十个甚至数百个天线元素&#xff0c;同事服务于多个用户。大规模输入输出特性可以允许多个设备同时连接到网络并获得告诉数据传输。 网络切片是一种按需组网的方式&#xff0c;可以让运营商…

标准IO函数-将bmp图片修改为德国国旗样式

代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #include <semaphore.h…

Vue本地存储(cookie、sessionStorage,localStorage)

Vue本地存储&#xff08;cookie、sessionStorage&#xff0c;localStorage&#xff09; 简介 cookie&#xff1a;登录信息存储在cookie中&#xff0c;有过期时间&#xff0c;过期后即失效sessionStorage&#xff1a;存储在浏览器&#xff0c;浏览器关闭后失效localStorage&am…

怎么办理北京工作居住证

怎么办理北京工作居住证 来源 北京市工作居住证 ciicbj 1 外埠人员工作居住证续签 - 北京市政务服务网 banshi.beijing 2 北京工作居住证办理条件材料及流程 bj.bendibao 3 查看更多2 答案 根据搜索结果,办理北京工作居住证的主要流程如下: 申请条件 具有…

小组练习 : 结合本小组项目写下能想到的所有 SWOT

学生信息管理系统&#xff08;SIMS&#xff09;是设计用来管理学生数据的软件应用程序&#xff0c;包括成绩、考勤记录、个人资料等。对于这样一个系统&#xff0c;进行SWOT分析&#xff08;优势Strengths、劣势Weaknesses、机会Opportunities、威胁Threats&#xff09;可以帮助…

展开说说:Android线程池解析

何谓线程池&#xff1f;本人理解是存放和管理线程的一个容器。 线程池存在的意义是什么&#xff1f; 第一&#xff1a;前面博客提到过创建和销毁线程的操作本身是有性能开销的&#xff0c;如果把使用的线程对象存起来下次用的时候直接取出来用就省去了一次创建和销毁的成本&a…

linux高性能服务器-线程池实现

文章目录 定义应用场景任务类型线程数量数据结构设计&#xff1a;任务设计&#xff1a;队列设计&#xff1a;线程池设计 接口设计 定义 线程池属于生产消费模型&#xff0c;管理维持固定数量线程的池式结构&#xff0c;避免线程频繁的创建和销毁 应用场景 当一类任务耗时&am…

怎么处理人际关系?如何幸福一辈子?人类社会发展最终结局预测?

处理人际关系的方法有很多&#xff0c;以下是一些建议&#xff1a; 建立良好的沟通&#xff1a;学会倾听他人&#xff0c;表达自己的需求和感受&#xff0c;以及尊重他人的观点和意见。 建立良好的互动&#xff1a;培养友善和尊重他人的态度&#xff0c;学会与他人合作和共事。…

2005-2021年全国各地级市生态环境注意力/环保注意力数据(根据政府报告文本词频统计)

2005-2021年全国各地级市生态环境注意力/环保注意力数据&#xff08;根据政府报告文本词频统计&#xff09; 2005-2021年全国各地级市生态环境注意力/环保注意力数据&#xff08;根据政府报告文本词频统计&#xff09; 1、时间&#xff1a;2005-2021年 2、范围&#xff1a;2…

C语言栈的含义与栈数据操作代码详解!

引言&#xff1a;在本篇博客中&#xff0c;我们将学到数据结构——栈&#xff0c;讲到栈的含义与关于栈的数据操作代码。栈可以在顺序表、双向链表以及单链表的基础上实现&#xff0c;而于本篇博客中&#xff0c;我们选择在顺序表的基础上实现栈。 更多有关C语言和数据结构知识…

常用算法汇总

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;算法思维逻辑&#x1f43e; 文章目录 1.判断闰年2.计算从某天到某天的天数3.二分4. 前缀和5.差分6.图论6.1dfs6.2走迷宫 7.最短路7.1dijkstra7.2foly 8.并查集9.数论9.1gcd lcm9.2判断素数(质数)9.3分解质因…

Hutool工具对称加密的使用

1、导入pom依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-crypto</artifactId><version>5.7.15</version> </dependency> 2、测试案例 import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding…

Linux设置脚本任意位置执行

记得备份 &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 修改文件之后记得用 source 文件名 刷新 注意&#xff1a;刷新文件之后在当前窗口…

05-07 周二 Python使用并行程序取代串行加速运行,样例程序演示

简介 在进行FastBuild优化的时候&#xff0c;需要串行的获取需要的组件的特征&#xff0c;之前是串行进行的&#xff0c;但是由于之前的设计存在问题&#xff0c;因此&#xff0c;总是很低效&#xff0c;主要是如下的原因&#xff1a; 镜像需要先下载&#xff0c;然后检测运行环…

2024/5/7 QTday2

练习&#xff1a;优化登录框&#xff0c;输入完用户名和密码后&#xff0c;点击登录&#xff0c;判断账户是否为 Admin 密码 为123456&#xff0c;如果判断成功&#xff0c;则输出登录成功&#xff0c;并关闭整个登录界面&#xff0c;如果登录失败&#xff0c;则提示登录失败&a…

xhell + privoxy 手动http代理设置

xshell7 SSH -> 隧道 -> 添加 -> 类型:Dynamic(SOCKS4/5) 侦听端口:1080 privoxy https://www.privoxy.org/ 下载zip版本 解压到 E:\httpserver\privoxy_3.0.34 config.txt 中 添加 listen-address 0.0.0.0:8118 forward-socks5 / 127.0.0.1:1080 . windows11 …

Linux系统时间同步服务 ntpd 和 chrony

时间同步协议&#xff08;NTP&#xff09;&#xff0c;用于同步网络中计算机时钟的协议。它使用客户端-服务器或对等&#xff08;peer-to-peer&#xff09;体系结构&#xff0c;并使用层次化的、分层的多级系统&#xff0c;这些等级称为"stratum"。Stratum 0是精度最…

[CISCN2019 华北赛区 Day1 Web2]ikun

看到提示说一定要找到lv6 这要写脚本来爆破了&#xff0c;用bp是爆破不出来的 发现LV等级都是有参数挂着的 写个脚本看一下 import requests for i in range(1,1000):payload"http://node4.anna.nssctf.cn:28150/shop?page%d"%(i)resrequests.get(payload)if "…