在杨氏矩阵中找数字
作者:互联网
//杨氏矩阵
//有一个数字矩阵,每行从左到右都是递增,每列都是从上到下都是递增
//查找k,并查找次数小于元素个数
//123
//234
//345
int find(int arr[3][3],int k,int *row,int *col)
{
int x = 0;
int y = *col - 1;
while (x<=*row-1&&y>=0)
{
if (arr[x][y]>k)
{
y--;
}
else if (arr[x][y]<k)
{
x++;
}
else
{
*row = x;
*col = y;
//printf("下标是%d %d\n", x, y);
return 1;
}
}
//找不到
return 0;
}
int main(){
int arr[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int k = 7;
int x = 3;
int y = 3;
int ret = find(arr, k, &x, &y);
if (ret == 1)
{
printf("找到了\n");
printf("下标是%d %d\n", x, y);
}
else
{
printf("没找到\n");
}
return 0;
}
标签:arr,return,数字,int,矩阵,else,杨氏,printf,col 来源: https://blog.csdn.net/king499/article/details/119255005