【C语言】二维数组中的查找,杨氏矩阵
2015-07-06 15:23
615 查看
//二维数组中的查找,杨氏矩阵 //在一个二维数组中,每行都按照从左到右的递增的顺序排序。每列都按照从上到下递增的顺序排序。 //请完成一个函数,输入这样的一个数组和一个数,判断数组中是否包含这个数。 #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++类型转化:static_cast,reinterpret_cast,dynamic_cast,const_cast
- C++类型转化:static_cast,reinterpret_cast,dynamic_cast,const_cast
- C++ ofstream和ifstream详细用法 及文件操作 导入到EXCEL
- C++笔试题第三波
- 黑马程序员——C语言---预处理指令
- 循环队列的C++实现以及假溢出的解决方法
- C++的异常处理
- C++ Bit Fields
- vc++加载透明png图片方法-GDI+和CImage两种
- C语言入门:03.关键字、标识符、注释
- 《C语言及程序设计》程序阅读——位运算及其应用
- C++编译器符号表有哪些内容?(程序员面试笔试笔记47页提到----符号表)
- c语言位运算有什么作用?
- C语言学习笔记:16_位运算
- [C语言]一个很实用的服务端和客户端进行UDP通信的实例
- 黑马程序员——C语言—结构体变量存储原理
- C语言学习笔记:15_c语言中的进制操作.c
- C++数组和指针
- C++变量和基本类型