题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否包含了该整数。
例:下面的二维数组就是每行、每列都按递增排序。如果在这个数组中查找数字6,则返回true(找得到);如果查找数字5,由于数组不含该数字,则返回false。
1 | 2 | 8 | 9 |
2 | 4 | 9 | 12 |
4 | 7 | 10 | 13 |
6 | 8 | 11 |
15 |
代码:
1 #include"stdio.h" 2 int func(); 3 int a[4][4] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}}; 4 int m,n; 5 int num = 12; 6 int main() 7 { 8 if(func()) 9 printf("true"); 10 else 11 printf("false"); 12 return 0; 13 } 14 int func() 15 { 16 int i,j; 17 i = 0;j = 3; 18 while(i <=3 && j >= 0) 19 { 20 if(a[i][j] == num) 21 return 1; 22 else if(a[i][j] > num) 23 j--; 24 else 25 i++; 26 } 27 return 0; 28 }