时间:2021-05-20
C语言二维数组中的查找的实例
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
思路描述:一个数字的下方和右方是比它本身大的区域,而左方和上方时比它本身小的区域。选取右上角的数字进行比较,当该数大于指定的数时,舍去该列,当该数小于指定的数时,舍去该行,当相等时,则表示找到
C语言实现:
#include<stdio.h>#include<stdlib.h>typedef unsigned int boolean;#define MAX 4#define TRUE 1#define FALSE -1void showAry(int ary[MAX][MAX]);boolean find(int ary[MAX][MAX], int rows, int cols, int number);void showAry(int ary[MAX][MAX]) { int i = 0, j = 0; for(; i < MAX; i++) { j = 0; for(; j < MAX; j++) { printf("%d ", ary[i][j]); } }}boolean find(int ary[MAX][MAX], int rows, int cols, int number) { int i = 0, j = cols - 1, n = 0; boolean result = FALSE; if(ary == NULL || rows <= 0 || cols <= 0) { return result; } while(i < rows && j >= 0) { n = ary[i][j]; if(number == n) { printf("\nary[%d, %d] = %d\n", i, j, n); result = TRUE; break; }else if(number < n) { j -= 1; }else if(number > n) { i += 1; } } return result;}//1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15int main() { int ary[MAX][MAX]; int i = 0, j = 0; for(; i < MAX; i++) { j = 0; for(; j < MAX; j++) { scanf("%d", &ary[i][j]); } } showAry(ary); find(ary, MAX, MAX, 7);}以上就是讲解C语言二维数组中的查找的实例,希望能帮助需要同类型问题的朋友,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C/C++动态数组的创建的实例详解在C++语言中,二维动态数组主要使用指针的方法建立,以建立一个整数二维数组为例:#include#include#includ
详解C语言用malloc函数申请二维动态数组的实例C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。Sampleone#includ
本文实例讲述了C#实现的二维数组排序算法。分享给大家供大家参考,具体如下:classOrder{//////对二维数组排序//////排序的二维数组///排序根
本文实例讲述了C++二维数组中的查找算法。分享给大家供大家参考,具体如下:一、问题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递
本文实例讲述了Java二维数组。分享给大家供大家参考,具体如下:一点睛1每行的元素个数不同的二维数组Java定义二维数组更加灵活,允许二维数组中的每行的元素个数