其他分享
首页 > 其他分享> > 在杨氏矩阵中找数字

在杨氏矩阵中找数字

作者:互联网

//杨氏矩阵
//有一个数字矩阵,每行从左到右都是递增,每列都是从上到下都是递增
//查找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