C语言经典100题——输出“魔方阵“

2023-05-16

<1>题目描述

输出“魔方阵”,所谓魔方阵是指它的每一行、每一列和对角线之和均相等。例如:

8    1    6
3    5    7
4    9    2

要求输出1——n^2的自然数构成的魔方阵

<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. 如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。(例如,按上面的规定,4应该放在第1行第2列,但该位置已被1占据,所以4就放在3的下面。)

<3>代码实现

int main()
{
	int a[15][15] = {0};
	int i, j, k, n;
	int p = 1;
	while (p == 1)
	{
		printf("请输入n = 1~15(n阶方阵,要求n为奇数):");		//要求阶数为1~15奇数
		scanf("%d",&n);
		if ((n != 0) && (n <= 15) && (n % 2) != 0)
			p = 0;
	}
	//初始化
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			a[i][j] = 0;
		}
	}
	//建立魔方阵
	j = n / 2 + 1;
	a[1][j] = 1;											//将第一行中间一列置为1
	for (k = 2; k <= n * n; k++)							//将剩下的n*n-1个元素赋值
	{
		//从2开始直到n*n止,各数依次按此规则存放:放一个数存放的行比前一个数的行数减1,列数加1
		i = i - 1;
		j = j + 1;
		//阻止将数字放在方阵外面
		if ((i < 1) && (j > n))
		{
			i = i + 2;
			j = j - 1;
		}
		else
		{
			//如果上一数的行数为1,则下一个数的行数为n
			if (i < 1)							//i = i-1(如果i=1,则1-1=0,0<1)
				i = n;
			//当上一个数的列数为n时,下一个数的列数应为1
			if (j > n)							//j = j+1(如果j=n,则n+1=n+1,n+1>n)
				j = 1;
		}
		//下面是赋值操作
		if (a[i][j] == 0)
			a[i][j] = k;
		else
		{
	//如果上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面
			i = i + 2;							
			j = j - 1;
			a[i][j] = k;
		}
	}
    //打印输出
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			printf("%-4d",a[i][j]);
		}
		putchar('\n');
	}
	return 0;
}

<4>结果展示

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言经典100题——输出“魔方阵“ 的相关文章

  • 【杭电100题】2094 产生冠军

    原题 xff1a http acm hdu edu cn showproblem php pid 61 2094 最近很喜欢用map 把成功者 失败者都存起来 然后在成功者里把曾经失败的划掉 最后成功者里如果只剩一个人 xff0c 冠军产生
  • Python求1+2+3+...+100的值,计算平方根的两个代码程序

    目录 前言 一 求1 43 2 43 3 43 43 100的值 1 实现的功能 2 代码程序 3 运行截图 二 计算平方根 1 实现的功能 2 代码程序 3 运行截图 前言 1 因多重原因 xff0c 本博文由两个程序代码部分组成 xff
  • Linux shell 用for循环100次的方法

    前言 循环不管在程序中还是脚本中都需要经常用到 xff0c 在写shell脚本时 xff0c 经常需要for进行100次循环 这里谈谈几种从1到100的循环方法 四种方法 C语言风格 span class hljs keyword for
  • shell下的第一个编程(不一样的1到100累加)

    相信对于一个程序 猿 来说 xff0c 除了我们入门的 hello world 之外 xff0c 最简单的代码就是只有从1累加到100这样简单的程序吧 xff0c 没错这样的程序在现在来看或许根本不如我们的法眼 xff0c 那么问题来了 x
  • Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite

    目录 建立默认带身份验证 Blazor 程序角色 组件 特性 过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件 本地化资源freesql 生成实体类 freesql 管理ids数据表初始化 Roles freesq
  • 20万到100万年薪的算法工程师有什么区别?

    公元七世纪 xff0c 在车迟国国家气象局组织的一次求雨活动中 xff0c 虎力 鹿力 羊力三位大仙成功地祈下甘霖 xff0c 救黎民于水火中 老国王虽然不明就里 xff0c 却从此尊他们为国师 xff0c 奉道教为圭臬 本世纪 xff0c
  • 交行对账接口100.100.100.X访问超时解决办法

    今天维护一个老的项目 xff0c 一个老的项目已经稳定运行近1年了 最近突然出现故障了 windows服务器 xff0c 中间为了排除问题 xff0c 重启了一下服务器 毕竟windows服务器 xff0c 有时重启包治百病 各种问题都成功
  • C语言例题 4/100

    题目 xff1a 输入某年某月某日 xff0c 判断这一天是这一年的第几天 xff1f include lt stdio h gt int main int day month year sum leap printf 34 n请输入年 月
  • 不到100行写出一个完整的web框架

    本篇文章是为了后面的Django做准备的 xff0c 这是学习web框架的底层知识 xff0c 没有直接用到socket xff0c 而是用Python自带的库wsgiref 1 wsgiref模块 它就相当于是一个服务器 xff0c 会帮
  • c语言程序求200以内的全部素数,求100~200之间的全部素数

    求100 200之间的全部素数 分析 xff1a 要判断一个数是不是素数 xff0c 首先要知道什么是素数 回忆一下数学里的知识 xff0c 什么是素数 xff1f 只能被自身和1整除的正整数是素数 1既不是素数 xff0c 也不是合数 x
  • python数值运算m op n 100+10_【Python】数值运算

    描述 获得用户输入的一个字符串 xff0c 格式如下 xff1a M OP N 其中 xff0c M和N是任何数字 xff0c OP代表一种操作 xff0c 表示为如下四种 xff1a 43 加减乘除
  • 打印1-100之间所有素数

    代码 方法1 方法2 执行结果 求1 10之间非素数之和
  • 靠写作能挣100万吗

    不要被标题吓到 xff0c 今天说的就是关于写作 Fenng大说 xff0c 同等能力的人绝对要文字写得好的 帅张说编程 英语 写作是程序员的3大底层能力 写作能给我带来什么 xff1f 王朔曾说 xff0c 写作是一条狗 xff0c 只要
  • git clone github_提高github下载速度的方法100%有效可达到2MB/s

    点击上方 Python全家桶 xff0c 星标 或 34 置顶 34 关键时刻 xff0c 第一时间送达 作者 kcx64 本文仅做分享 xff0c 若有侵权请联系小编 第一时间删文 阅读本文大概需要 2 8 分钟 因为大家都知道的原因 x
  • YoungTalk-STM32入门100步-总篇

    这个系列的笔记是为了学习单片机STM32而做的 xff01 来记录自己的学习路程 xff0c 解答一些自己的疑惑 xff01 xff08 本系列的所有内容都是以杜洋老师的视频为主线的 xff0c 再加上自己做的一些笔记 xff0c 网上找的
  • C语言经典面试题100道(校对详解版)

    题目非本人整理 xff0c 转载于https blog csdn net qq 42613510 article details 81225935 做了校对与详解 xff0c 方便大家参考 最后编程答案自己做的 xff0c 还没写完 xff
  • 这100个shell脚本案例,你都知道吗?一篇教会你写90%的shell脚本

    shell 是一个应用程序 xff0c 它连接了用户和 Linux 内核 xff0c 让用户能够更加高效 安全 低成本地使用 Linux 内核 xff0c 这就是 Shell 的本质 shell脚本就是由Shell命令组成的执行文件 xff
  • 【100%有效】解决AndroidStudio 控制台编译输出中文乱码,亲测解决!

    背景 在AndroidStudio中新建了一个Java Module xff0c 但是点击 Run app 之后 xff0c Build Output 控制台输出的中文都是乱码 xff0c 都是问号一样的字符 google了很多方法 xff
  • leetcode 100热题

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言标题easy问题合集1 有效括号问题 前言 提示 xff1a leetcode简单题目100题中的easy部分 xff1a
  • 100条经典C语言笔试题目

    100 条经典C语言笔试题目 题目来源 xff1a 1 中兴 华为 慧通 英华达 微软亚洲技术中心等中 外企业面试题目 xff1b 2 C 语言面试宝典 林锐 高质量编程第三版 说明 xff1a 1 部分C 语言面试题中可能会参杂部分和C

随机推荐

  • Debian系统更新apt源

    docker search了一个tomcat的镜像 xff0c 发现是Debian系统 xff0c 里面啥啥命令都没有 xff0c 使用的这个难受啊 xff0c 于是 xff0c 强迫症犯了 xff0c 要安装相应软件 xff0c 在容器里
  • Isaac Gym(一)在Ubuntu20.04.1中安装Isaac Gym

    在Ubuntu20 04 1中安装Isaac Gym 前提1 安装 Conda1 1 下载Anaconda3安装文件1 2 运行1 3 设置路径 2 安装 Isaac Gym2 1 下载Isaac Gym安装文件2 2 解压并删除安装包2
  • 在rviz中出现For frame [laser]: Fixed Frame [laser_link] does not exist

    参考 xff1a 链接 一 激光雷达在rviz中没有显示扫描数据 二 解决方法 topic报frame transform之类错误 xff0c 就有两个办法 xff1a 1 把global fixed frame设成topic自己所在的坐标
  • ubuntu安装nerd font字体

    步骤 1 下载nerd font字体文件到某个文件夹 在网址https www nerdfonts com font downloads xff0c 找到JetBrainsMono xff0c DroidSansMono xff0c Dej
  • OpenStack计费项目CloudKitty的强化及运用

    本文转自Openstack中国社区Openstack计费项目CloudKitty的强化及运用 本文作者 xff1a Li Xiangjun 在OpenStack开发社区向 Big Tent 模式全面转型之际 xff0c 一个新的项目 Clo
  • Winpcap数据包的抓取及还原

    winpcap技术手册 xff0c 除了安装文件里doc文件下有个帮助 xff0c 这里在给一个 xff1a http www ferrisxu com WinPcap html index html 这里我们用pcap next ex 函
  • 柱面坐标变换

    在图像拍摄点固定的情况下 xff0c 对图像做柱面投影变换 xff0c 再进行配准会得到较为理想的效果 如图所示 xff0c 点P在相机所处的坐标系下的坐标为 xff0c 在像素坐标系下表示为P xff08 x xff0c y xff09
  • 几行Python代码教你zip打包

    码农一方面是码代码 xff0c 另一方面是布署服务 xff0c 传到服务器时 xff0c 文件数据较多时 xff0c 直接通过文件传输概率性会丢失文件 xff0c 最好是先压成zip包 xff0c 再传输 但是 xff0c zip包中的文件
  • 推荐一款强大的OCR工具

    大家好 xff0c 我是 jonssonyan xff0c 今天我想向大家介绍一款强大的 OCR 工具 Umi OCR 以下是它的开源地址 Umi OCR GitHub xff1a https github com hiroi sora U
  • ArXiv简介以及论文提交

    arXiv网站简介 arXiv是一个收集物理学 数学 计算机科学 生物学与数理经济学的论文预印本的网站 其中arXiv发音同 archive xff0c 因为 X 代表希腊字母 xff0c 国际音标为 kai 它于1991年8月14日成立
  • Vue中axios请求报错

    问题 xff1a axios请求成功但是还是进入catch 在请求后端接口后 xff0c 发现请求成功了 xff0c 但是却报错了 在经过排查之后 xff0c 发现后端返回的数据结构更改了 xff0c 所以导致成功的代码块内部出现错误 xf
  • lsnrctl command not found

    在linux安装完oracle时 当你遇到lsnrctl command not found等问题都不能用时 会有几种情况 1 首先你先查看下环境变量里面有没有加入oracle的配置 执行 echo ORACLE HOME 没有的话 你执行
  • CNC加工中心程序代码大全,你还不收藏吗?

    数控程序中字母的含义 O xff1a 程序号 xff0c 设定程序号 N xff1a 程序段号 xff0c 设定程序顺序号 G xff1a 准备功能 X Y Z xff1a 尺寸字符 xff0c 轴移动指令 A B C U V W xff1
  • 413 Request Entity Too Large(请求实体太大)

    最近开发时遇到了上传失败的情况 xff0c 提示 xff1a 413 Request Entity Too Large xff08 请求实体太大 xff09 因为上传通过代理服务器Nginx xff0c 因此可以 修改代理服务器Nginx
  • Photos(PHFetchResultChangeDetails)

    Photos PHChange Photos PHObjectChangeDetails Photos PHFetchResultChangeDetails PHFetchResultChangeDetails主要用于记录PHFetchRe
  • 远程桌面连接的时候 屏幕一闪就没了 然后不能连接上

    重启本地两个远程服务组件Remote Desktop Services和Remote Desktop Services usermode Port Redirector 如果还不行 xff0c 按下面的试试 启动注册表编辑器 Regedt3
  • 关于codeforces比赛规则介绍(转载)

    Codeforces 简称 cf 所以谈论cf的时候经常被误会成TX的那款游戏 网址 codeforces com 这是一个俄国的算法竞赛网站 由来自萨拉托夫州立大学 由Mike Mirzayanov领导的一个团队创立和维护 是一个举办比赛
  • 自制书立

    店里卖的书立简直贵的离谱 xff0c 不就是一个直角的铁片吗 xff0c 要那么多钱 索性自己做一个 xff0c 就用最便宜的衣架 xff0c 不到一元钱搞定 xff01 把衣架弯成直角 换个角度 xff0c 再来一张 完事了 xff0c
  • 连载:面向对象葵花宝典:思想、技巧与实践(27) - 动态模型设计

    类模型 指导我们如何声明类 xff0c 动态模型 指导我们如何实现类 xff01 动态模型设计一般都是在类模型设计完成后才开始 xff0c 因为动态模型设计的时候一般都需要用到类模型中的类 相对类模型来说 xff0c 动态模型要相对简单一些
  • C语言经典100题——输出“魔方阵“

    lt 1 gt 题目描述 输出 魔方阵 xff0c 所谓魔方阵是指它的每一行 每一列和对角线之和均相等 例如 xff1a 8 1 6 3 5 7 4 9 2 要求输出1 n 2的自然数构成的魔方阵 lt 2 gt 思路分析 将1放在第1行中