C语言--杨氏矩阵

这道题目就是判断一个数字是否在杨氏矩阵里面

1.

int main()
{int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };int k = 0;scanf("%d", &k);int x = 0;int y = 2;int flag = 0;while (x <= 2 && y >= 0){if (arr[x][y] > k){y--;}else if (arr[x][y] < k){x++;}else{flag = 1;printf("找到了,是%d,%d\n", x, y);break;}}if (flag = 0){printf("找不到\n");}return 0;
}

(1)因为是有复杂度的要求,我们不能直接进行遍历操作,而是提高程序的效率;

(2)我们每一次都从最右上角的数字开始和我们要找的数字进行比较,如果这个数字比要找的数

字大,根据定义,那么就可以社区这一列,就执行减减操作,如果这个数字比要找的数字小,那么

这一行的数据就可以省略了,就执行加加操作,进入到下一行;

(3)循环的条件就是不能超过第三行,而且不能小于第1列,这个就是范围;

2.

void yangshijuzhen(int arr[3][3],int k,int r,int c)
{int x = 0;int y = c - 1;int flag = 0;while (x <= 2 && y >= 0){if (arr[x][y] > k){y--;}else if (arr[x][y] < k){x++;}else{flag = 1;printf("找到了,是%d,%d\n", x, y);break;}}if (flag == 0){printf("找不到\n");}
}
int main()
{int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };int k = 0;scanf("%d", &k);yangshijuzhen(arr, k, 3, 3);return 0;
}

这种做法就是把判断的部分封装成了一个函数,要注意传参和i,j的变化,一个是从0开始的,一个

是从1开始的,沿著以之间的细微变化;

3.

void yangshijuzhen(int arr[3][3],int k,int *px,int *py)
{int x = 0;int y = *py - 1;int flag = 0;while (x <= *px-1 && y >= 0){if (arr[x][y] > k){y--;}else if (arr[x][y] < k){x++;}else{*px = x;*py = y;return;}}*px = -1;*py = -1;
}
int main()
{int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };int k = 0;scanf("%d", &k);int x = 3;int y = 3;yangshijuzhen(arr, k, &x, &y);if (x == -1 && y == -1){printf("找不到\n");}else{printf("找到了,是%d,%d\n", x, y);}return 0;
}

(1)如果我们不想在函数部分就打印坐标进行判断,而是返回到主函数里面再进行打印,但是又

不能返回2个值,因为写作return x,y是不对的;

(2)我们的解决方案是把传进去的函数和列数3,3全部改写成指针,把对应的和函数和列数的循

环条件也是用指针的解引用进行表示;

(3)如果可以找到我们就返回空,因为地址是可以传入主函数的,如果找不到,就返回2个-1;

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

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

相关文章

WLAN 无线局域网、802.11

目录 1 无线局域网的组成 1.1 IEEE 802.11 关联 (association) 建立关联的两种方法 1.2 移动自组网络 无线传感器网络 WSN 无线传感器网络主要的应用领域 2 802.11 局域网的物理层 802.11 的物理层的几种实现方法 1 无线局域网的组成 无线局域网 WLAN (Wireless Lo…

Java+SpringBoot+Vue+MySQL:疫情隔离酒店管理的全面技术解决方案

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

断电延时继电器 电源监视继电器 导轨安装 HJZS-E002 AC220V 2S

HJZS-E系列断电延时继电器 系列型号&#xff1a; HJZS-E202断电延时继电器 HJZS-E002断电延时继电器 一 应用 用于直流或交流操作的各种保护和自动控制的装置中&#xff0c;用以增加触点数量。 二 安装结构 导轨安装9壳体结构&#xff0c;具体尺寸参阅外型尺寸图。 三 主要…

Python及Pydev调试程序传递参数方法的实践

在Python中&#xff0c;可以使用sys.argv来获取命令行参数。下面是一个示例的Python脚本&#xff0c;展示了如何通过命令行传递参数并打印输出&#xff1a; import sys# 判断是否有传入参数 if len(sys.argv) > 1:# 获取第二个参数&#xff08;索引为1&#xff09;param s…

【机器人学导论笔记】三、操作臂正运动学

3.1 概述 操作臂正运动学研究操作臂的运动特性&#xff0c;主要涉及与运动有关的几何参数和时间参数。本章中&#xff0c;只研究静止状态下操作臂连杆的位置和姿态。 处理这些复杂的几何参数需要一些步骤&#xff1a;首先需要在操作臂的每个连杆上分别固接一个连杆坐标系&…

js获取屏幕的宽和高

<script type"text/javascript">window.onload function() {// 获取元素 let div1 document.getElementById(div1);console.log(window);// 获取计算后的样式 let Style window.getComputedStyle(div1);console.log(Style);// 获取元素的矩形对象 let re…

SQL注入之order by脚本盲注

一、环境 还是用上次搭建的sql-labs靶机环境 搭建sql注入环境 二、什么是order by盲注 在有的时候我们进行sql注入时&#xff0c;源码的查询语句后面为order by&#xff1b; 众所周知&#xff0c;order by 后面接的字段或者数字不一样&#xff0c;那么这个数据表的排序就会…

【python】学习笔记03-循环语句

3.1 whlie循环的基础语法 - while循环的语法格式 - while循环的注意事项 条件需提供布尔类型结果&#xff0c;True继续&#xff0c;False停止 空格缩进不能忘 请规划好循环终止条件&#xff0c;否则将无限循环 """ 演示while循环基础练习题&#xff1a;求1-10…

计算机组成原理 — 存储器(2)

高速缓冲存储器 大家好呀&#xff01;我是小笙&#xff0c;由于存储器这部分章节内容较多&#xff0c;我分成二部分进行总结&#xff0c;以下是第二部分&#xff0c;希望内容对你有所帮助&#xff01; 概述 目的&#xff1a;避免CPU空等现象 原理&#xff1a;程序访问的局部…

基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的旅游网管理系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

【java】13:饿汉式和懒汉式

单例(单个的实例) 1&#xff0e;所谓类的单例设计模式&#xff0c;就是采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得其对象实例的方法2单例模式有两种方式:1)饿汉式2)懒汉式 单例模式应用实例&#xff…

力扣爆刷第80天--动态规划一网打尽子序列一维二维连续不连续变体

力扣爆刷第80天–动态规划一网打尽子序列一维二维连续不连续变体 文章目录 力扣爆刷第80天--动态规划一网打尽子序列一维二维连续不连续变体零、总结一、1035.不相交的线二、53. 最大子序和三、392.判断子序列四、115.不同的子序列 零、总结 今天也是子序列的一天&#xff0c;…

NLP 使用Word2vec实现文本分类

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制]\n&#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/…

【算法小讲堂】#1 贪心算法

引入——关于贪心算法 我们先来做一个小游戏——现在假设自己是一个小偷&#xff0c;桌上有一些物品&#xff0c;包括一台iPhone15、一个充电宝、一个眼罩和一个溜溜梅。此时&#xff0c;你听说警察即将到来&#xff0c;那么你会先带走哪个东西呢&#xff1f; 一般来讲&#xf…

「Python系列」Python JSON数据解析

文章目录 一、JSON数据解析1. 读取和解析JSON文件2. 字符串到Python对象的解析3. Python对象到JSON字符串的转换4. 错误处理5. JSON数据的格式化输出 二、Python 编码为 JSON 类型转换对应表三、JSON简介四、相关链接 一、JSON数据解析 在Python中解析JSON数据通常使用json模块…

VUE中引入外部jquery.min.js文件

jquery官网&#xff1a;https://jquery.com/ cdn链接&#xff1a;https://code.jquery.com/jquery-3.7.1.js <template><div class"">测试jq<div id"jq">这是一个盒子</div></div> </template><script> import…

再次委托|工科背景老师赴美国斯坦福大学自费访学

工科背景的I老师&#xff0c;几年前曾通过我们获得美国哈佛大学医学院的无薪博士后职位&#xff0c;从事医工交叉学科研究。回国完成2年服务期后&#xff0c;I老师再次委托并仍希望去美国顶尖高校&#xff0c;最终我们落实了世界名校斯坦福大学的访问学者职位&#xff0c;满足了…

网络安全的重要性及SASE在企业中的应用

在信息技术日益发展的今天&#xff0c;网络安全已经成为企业不可忽视的重要议题。然而&#xff0c;仍有部分企业对网络安全的重视程度不够&#xff0c;这种疏忽可能会给企业带来严重的后果。 1. 数据泄露的风险 数据是现代企业的核心资产之一。如果企业不重视网络安全&#x…

跨境外贸自动评论脚本开发常用代码!

随着跨境电商的兴起&#xff0c;自动化评论成为了提升销售和客户满意度的重要工具&#xff0c;通过编写自动评论脚本&#xff0c;商家可以快速地在各个平台留下正面评价&#xff0c;提高产品的曝光率和信誉度。 本文将介绍跨境外贸自动评论脚本开发的一些常用代码&#xff0c;…

RabbitMq:RabbitMq 主从镜像模式②

一、模式思想 所有的技术设计思想&#xff0c;基本都在两点上下功夫&#xff1a;1. 生产力上 2. 稳定性上 二、集群模式 今天又有人问起来rabbitmq的高可用方式&#xff0c;因为和常见的主从模式有点区别&#xff0c;所以就记录一下。 rabbitmq集群的镜像队列提供了更高级的主…