C语言:螺旋阵

右螺旋阵

输入格式

一行,输入两个正整数n和m(2≤n,m≤30),分别表示行和列数

输出格式

输出对应的右螺旋矩阵

一个4*4的右螺旋矩阵是下面这个样子的:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7


void generate(int n,int m,int mar[n][m])
{int count=1;int row_start=0,row_end=n-1;int col_start=0,col_end=m-1;while(row_start<=row_end&&col_start<=col_end){for(int i=col_start;i<=col_end;i++){mar[row_start][i]=count++;}row_start++;for(int i=row_start;i<=row_end;i++){mar[i][col_end]=count++;}col_end--;if(row_start<=row_end){for(int i=col_end;i>=col_start;i--){mar[row_end][i]=count++;}row_end--;}if(col_start<=col_end){for(int i=row_end;i>=row_start;i--){mar[i][col_start]=count++;}col_start++;}}
}

左螺旋阵

一个4*4的左螺旋矩阵是下面这个样子的:

13 14 15 16

12 3 4 5

11 2 1 6

10 9 8 7

void generate(int n,int m,int mar[n][m])
{int count=n*m;int row_start=0,row_end=n-1;int col_start=0,col_end=m-1;int i=0;while(row_start<=row_end&&col_start<=col_end){for(i=col_end;i>=col_start;i--){mar[row_start][i]=count--;}row_start++;for(i=row_start;i<=row_end;i++){mar[i][col_start]=count--;}col_start++;if(row_start<=row_end){for(i=col_start;i<=col_end;i++){mar[row_end][i]=count--;}row_end--;}if(col_start<=col_end){for(i=row_end;i>=row_start;i--){mar[i][col_end]=count--;}col_end--;}}
}

完整代码(左螺旋阵)

#include <stdio.h>
void generate(int n,int m,int mar[n][m])
{int count=n*m;int row_start=0,row_end=n-1;int col_start=0,col_end=m-1;int i=0;while(row_start<=row_end&&col_start<=col_end){for(i=col_end;i>=col_start;i--){mar[row_start][i]=count--;}row_start++;for(i=row_start;i<=row_end;i++){mar[i][col_start]=count--;}col_start++;if(row_start<=row_end){for(i=col_start;i<=col_end;i++){mar[row_end][i]=count--;}row_end--;}if(col_start<=col_end){for(i=row_end;i>=row_start;i--){mar[i][col_end]=count--;}col_end--;}}
}
int main()
{int n,m;scanf("%d%d",&n,&m);int mar[n][m];generate(n,m,mar);int i,j;for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d ",mar[i][j]);}printf("\n");}return 0;
}

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

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

相关文章

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 110 二叉树的最小深度

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 104 二叉树的最大深度解法1 深度优先 递归法 后序&#xff1a;左右中解法2 广度优先&#xff1a;层序遍历 Leetcode 110 二叉树的最小深度解法1 深度优先&#xff1a;递归 后序遍历 左右中解法2 广度优先&…

C++模板详解 —— 函数模板与类模板

C模板详解 泛型编程函数模板函数模板的概念函数模板的原理 函数模板的实例化函数模板的匹配原则类模板类模板的定义格式类模板的实例化 泛型编程 如果让你编写一个函数&#xff0c;用于两个数的交换。在C语言中&#xff0c;我们会用如下方法&#xff1a; void Swapi(int* p1,…

在PyTorch中,如何查看深度学习模型的每一层结构?

这里写目录标题 1. 使用print(model)2. 使用torchsummary库3.其余方法&#xff08;可以参考&#xff09; 在PyTorch中&#xff0c;如果想查看深度学习模型的每一层结构&#xff0c;可以使用print(model)或者model.summary()&#xff08;如果你使用的是torchsummary库&#xff0…

5.11 BCC工具之statsnoop.py简介

一,工具简介 从工具的名字也能知道,statsnoop工具用于跟踪stat()系统调用。 那么stat()系统调用是做什么的呢? stat()是很常见的一种系统调用。用于获取文件或文件系统的状态信息。通过调用 stat(),你可以获取到关于指定文件或目录的详细信息,如文件大小、文件类型、文…

2024.2.17每日一题

LeetCode N 叉树的层序遍历 429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个 N 叉树&#xff0c;返回其节点值的层序遍历。&#xff08;即从左到右&#xff0c;逐层遍历&#xff09;。 树的序列化输入是用层序遍历&#xff0c;每组子节点…

机试复习-4

1.string类 string类型和数值的转换 ※数值→字符串 to_string函数 //具体做法 int i1234; string gto_string(i);//这样就转成字符串1234了 //下面就是字符串转为数字&#xff0c;类似下面还有stof,stoi,stod string d "1289347647"; int j stoi(d); cout <…

正则表达式速查表

匹配字符 [abc]匹配a,b,c中的任意一个字符[^abc]不匹配a,b,c中的所有字符&#xff0c;“^”只有作为第一个字符出现才有效[a-g]匹配a-g范围内的任意一个字符[^a-g]不匹配a-g中的所有字符[H-N]匹配H-N范围内的任意一个字符[0-9]匹配0-9范围内的任意一个字符[a-gH-N]匹配a-g,H-N…

线索化二叉树(先序,中序,后序)+线索化二叉树的遍历【java详解】

目录 线索化二叉树的基本介绍&#xff1a; 举个栗子&#xff1a; 二叉树的中序线索化&#xff1a; 创建HeroNode类&#xff0c;表示节点信息&#xff1a; 编写中序线索化方法代码&#xff1a; 中序线索化遍历代码&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a…

OpenHarmony系统解决方案 - 配置屏幕方向导致开机动画和Launcher显示异常

问题环境 系统版本&#xff1a;OpenHarmony-3.2-Release 问题现象 配置设备默认方向&#xff0c;例如修改为横屏显示&#xff0c;修改文件display_manager_config.xml的buildInDefaultOrientation参数值为2(Orientation::HORIZONTAL)。 源码中文件位于foundation/window/win…

在 Geoserver 中添加自定义的室内坐标系

要在 Geoserver 中添加自定义的室内坐标系&#xff0c;您需要在数据目录中的 user_projections 文件夹下创建或编辑一个 epsg.properties 文件&#xff0c;然后在文件末尾添加您的坐标系的定义&#xff0c;使用 WKT&#xff08;Well-Known Text&#xff09;格式。您还需要为您的…

WordPress站点成功升级后的介绍页地址是什么?

我们一般在WordPress站点后台 >> 仪表盘 >> 更新中成功升级WordPress的话&#xff0c;最后打开的就是升级之后的版本介绍页。比如boke112百科前两天升级到WordPress 6.4.2后显示的介绍页如下图所示&#xff1a; 该介绍除了介绍当前版本修复了多少个问题及修补了多少…

ABC341 A-G

Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; - AtCoder B读不懂题卡了&#xff0c;F读假题卡了&#xff0c;开题开慢了rank了 A - Print 341 题意&#xff1a; 打印一串交替出现的包含N个0&#xff0c;N1个1的01串 代码&…

2024免费人像摄影后期处理工具Portraiture4.1

Portraiture作为一款智能磨皮插件&#xff0c;确实为Photoshop和Lightroom用户带来了极大的便利。通过其先进的人工智能算法&#xff0c;它能够自动识别并处理照片中的人物皮肤、头发和眉毛等部位&#xff0c;实现一键式的磨皮美化效果&#xff0c;极大地简化了后期处理的过程。…

Switch开关(antd-design组件库)简单使用

1.Switch开关 开关选择器。 2.何时使用 需要表示开关状态/两种状态之间的切换时&#xff1b; 和 checkbox 的区别是&#xff0c;切换 switch 会直接触发状态改变&#xff0c;而 checkbox 一般用于状态标记&#xff0c;需要和提交操作配合。 组件代码来自&#xff1a; 开关 Swit…

【leetcode题解C++】51.N皇后 and 76.最小覆盖子串

51. N皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方…

用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码)

导 读 本文主要介绍使用Python和OpenCV搭建自己的一维码和QRCode扫描仪&#xff08;步骤 源码&#xff09;。 项目简介 本文我们将创建一个程序来扫描图像中的二维码和条形码。对于这个程序&#xff0c;我们需要三个包&#xff0c;分别是OpenCV、NumPy和pyzbar。大多数 Pyth…

python中线程/线程池,进程/进程池的创建

创建子线程 # 创建子线程t1 threading.Thread(targetjob,args(1,))# 执行子线程t1.start()# 等待子线程执行print("waiting threading")t1.join()print("threading done")创建子进程 # 创建子进程p1 multiprocessing.Process(targetjob,args(1,),name&qu…

linux kernel 内存踩踏之KASAN_HW_TAGS(MTE)(三)

一、背景 linux kernel 内存踩踏之KASAN&#xff08;一&#xff09;_kasan版本跟hasan版本区别-CSDN博客 linux kernel 内存踩踏之KASAN_SW_TAGS&#xff08;二&#xff09;-CSDN博客 最后来介绍一下KASAN_HW_TAGS&#xff0c;ARM64上就是MTE&#xff0c;这个特性在ARMv8.5支…

贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

文章目录 频率学派 vs. 贝叶斯学派贝叶斯学派Probability(概率):独立性/条件独立性:Probability Theory(概率论):Graphical models (概率图模型)什么是图模型(Graphical Models)图是什么计算机科学中的图模型:为什么图模型有用?图模型:统一框架图模型在机器学习中的…

@ 代码随想录算法训练营第8周(C语言)|Day51(动态规划)

代码随想录算法训练营第8周&#xff08;C语言&#xff09;|Day51&#xff08;动态规划&#xff09; Day51、动态规划&#xff08;包含题目 139.单词拆分 &#xff09; 139.单词拆分 题目描述 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict&#xff0c;判定 s 是…