这个矩阵具有以下特性:
每行中的整数从左到右是排序的。
每一列的整数从上到下是排序的。
在每一行或每一列中没有重复的整数。
样例:
矩阵:
1 2 9 10
3 4 11 12
5 7 12 14
6 9 14 16
整数:7
结果:1
提示:这个矩阵叫做杨氏矩阵,在搜索过程中,遵循杨氏矩阵的搜索规律, 从右上角开始, key小于矩阵中该点的值,
往左走, 大于则往下走
#include<stdio.h>
int main() {
int a[10][10] = { 0 }, i, j, k=0, m, n;
scanf_s("%d %d", &m, &n);
for(i=0;i<m;i++)
for (j = 0; j< n;j++) {
scanf_s("%d", &a[i][j]);
}
i = 0;j = n-1;
int key;
printf("整数:");
scanf_s("%d", &key);
printf("结果:");
while (i <m && j >= 0) {
if (key ==a[i][j]) {
printf("1");
break;
}
else {
if (key > a[i][j]) {
i++;
}
else {
j--;
}
k++;
}
}
if(k==m||k==n){
printf("0");
}
return 0;
}
注意:
<1>当输入值小于最小值时需要向左走n次
<2>当输入值大于最大值时需要向下走m次