【C语言】二维数组中的查找,杨氏矩阵
//二维数组中的查找,杨氏矩阵
//在一个二维数组中,每行都依照从左到右的递增的顺序排序。每列都依照从上到下递增的顺序排序。 //请完毕一个函数。输入这种一个数组和一个数,推断数组中是否包括这个数。
#include <stdio.h>
#define Col 4
int Yang(int arr[][Col], int val)
{
int i=0;
int j = Col - 1;
int tmp = arr[i][j]; //找到左上角的数
while (1)
{
if (tmp == val)
{
return 1;
}
else if (tmp<val && j>=0) //小于要找的数,在下一行寻找
{
tmp = arr[++i][j];
}
else if (tmp>val && j>=0) //大于要找的数,从该列向前找
{
tmp = arr[i][--j];
}
else
return 0;
}
}
int main()
{
int i, j;
int a;
int arr[4][Col] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19 };
printf("数组为:\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
printf("%3d", arr[i][j]);
}
printf("\n");
}
printf("请输入一个数:");
scanf_s("%d", &a);
if (Yang(arr, a))
{
printf(" %d在该矩阵中\n", a);
}
else
{
printf(" %d不在该矩阵中\n", a);
}
return 0;
}
【C语言】二维数组中的查找,杨氏矩阵的更多相关文章
- 【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都依照从左到右的递增的顺序排序,输入这种一个数组和一个数,推断数组中是否包括这个数
// 二维数组中的查找,杨氏矩阵在一个二维数组中.每行都依照从左到右的递增的顺序排序. // 每列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个数组和一个数.推断数组中是否包括这个数 #i ...
- 【Java】 剑指offer(3) 二维数组中的查找
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上 ...
- 【剑指offer】01 二维数组中的查找
题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照 ...
- 剑指Offer面试题:2.二维数组中的查找
一.题目:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- 剑指Offer:面试题3——二维数组中的查找(java实现)
问题描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路:取数组中的元素与 ...
- 【面试题003】c数组做为参数退化的问题,二维数组中的查找
[面试题003]c数组做为参数退化的问题,二维数组中的查找 一,c数组做为参数退化的问题 1.c/c++没有记录数组的大小,因此用指针访问数组中的元素的时候,我们要确保没有超过数组的边界, 通过下面 ...
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- 《剑指Offer》面试题-二维数组中的查找
题目1384:二维数组中的查找 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7318 解决:1418 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到 ...
- 《剑指offer》— JavaScript(1)二维数组中的查找
二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ** ...
随机推荐
- 解决因为google cdn无法访问导致无法打开stackoverflow等网站的方法
许多网站使用了Google的CDN来加速Jquery之类的库来加速网站访问,但由于方校长发福利的原因,导致这些网站很容易出现无法加载"ajax.googleapis.com"而出现 ...
- DAC calibrates 4- to 20-mA output current
Industrial controls make heavy use of 4- to 20-mA current loops to transmit process measurements bec ...
- 关于warning: Clock skew detected. Your build may be incomplete. 的解决方法
今天发现电脑的系统时间不对,因此将时钟进行了改动,回头编译Linux kernel的时候,提演示样例如以下的warning: warning: Clock skew detected. Your ...
- mysql配置文件my.ini优化详解
mysql 5.5.13参数说明:[client]character-set-server = utf8port = 3306socket = /data/mysql/3306/mysql.sock[ ...
- 实现SQL Server中的切割字符串SplitString函数
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.没什么好说的,需要的朋友直接拿去用吧 SET ANSI_NULLS ON GO S ...
- iOS:Xcode的beta下编译低版本项目时,出现的Link错误( "_fwrite$UNIX2003", referenced from:)
开发的项目多了,对于一个i386的错误,处理起来应该是得心应手的,可是仔细看来,跟之前遇到i386的错误还不大一样,直接搜i386是搜不到该问题解决的方法,你要是搜“Undefined symbols ...
- WinForm特效:同时让两个窗体有激活效果
windows api,一个窗体激活的时候给另外一个发消息 using System; using System.Windows.Forms; using System.Runtime.Interop ...
- 清空iframe的内容
document.getElementById("web").contentWindow.document.body.innerText = "";
- PHP curl 抓取AJAX异步内容
其实抓ajax异步内容的页面和抓普通的页面区别不大.ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即 ...
- myeclipse发布项目到tomcat时项目名称与web应用名称不一致问题
工程名称原来为old,发布到tomcat webapps下后为old, 右键点击你的项目,然后选择重构---->重命名,项目名称改为new,但是发布名还是原来的名字.如果想让发布后的目录名为ne ...