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


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


程序代码如下:



#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;
}

程序运行结果如下:


这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值