杨氏矩阵 :有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的。编写程序,在这样的数组中查找一个数字是否存在

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevin980123 https://blog.csdn.net/kevin980123/article/details/79980709

杨氏矩阵 :有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的。编写程序,在这样的数组中查找一个数字是否存在


程序代码如下:



#include <stdio.h>
#define ROW 3
#define COL 4
int Find(int arr[ROW][COL], int *row, int *col, int n)
{
    *row = 0;
    *col = COL - 1;
    while ((*row < ROW) && (*col >= 0))
    {
        if (arr[*row][*col] > n)
        {
            (*col)--;
        }
        else if (arr[*row][*col] < n)
        {
            (*row)++;
        }
        else
            return 1;
    }
    return 0;
}
int main()
{
    int arr[ROW][COL] = {{1,2,3,4},{5,7,9,10},{21,37,46,98}};
    int input = 0;
    int row = 0;
    int col = 0;
    printf("请输入一个整数:");
    scanf("%d", &input);
    int ret = Find(arr, &row, &col, input);
    if (ret == 1)
    {
        printf("row = %d,col = %d\n",row,col);
    }
    else
    {
        printf("Not found\n");
    }
    return 0;
}

程序运行结果如下:


这里写图片描述

阅读更多

没有更多推荐了,返回首页