C语言二维数组中的查找的实例
发布时间:2021-01-10 15:04:35 所属栏目:经验 来源:网络整理
导读:C语言二维数组中的查找的实例 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方和右方是比它
C语言二维数组中的查找的实例 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方和右方是比它本身大的区域,而左方和上方时比它本身小的区域。选取右上角的数字进行比较,当该数大于指定的数时,舍去该列,当该数小于指定的数时,舍去该行,当相等时,则表示找到 C语言实现: #include<stdio.h> #include<stdlib.h> typedef unsigned int boolean; #define MAX 4 #define TRUE 1 #define FALSE -1 void 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 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] = %dn",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 15 int 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,7); } 以上就是讲解C语言二维数组中的查找的实例,希望能帮助需要同类型问题的朋友,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |