杨氏矩阵(C语言)

简介: 杨氏矩阵(C语言)

有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存。

矩阵每一行元素从左到右依次递增;每一列从上到下依次递增
此特点可以通过每行从左到右是递增的,每列从上到下是递增的
二维数组来实现


802913c5bbb63b755cd9b6ff30d769d8_68fa4d439aa14e3e8c931117fdb59910.png


代码实现


#include<stdio.h>
int find_num(int arr[3][3], int* a, int* b, int k)
{
  int x = 0;
  int y = *b - 1;
  //x从第一行开始向下比较
  //y从右向左遍历
  while (x <= *a - 1 && y >= 0)
  {
  if (k < arr[x][y])
  {
    y--;
  }
  else if (k > arr[x][y])
  {
    x++;
  }
  else
  {
    *a = x;
    *b = y;
    return 1;
  }
  }
  return 0;
}
int main()
{
  int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
  int a = 3;
  int b = 3;
  int k = 0;
  printf("请输入待查数字>");
  scanf("%d", &k);
  int ret = find_num(arr, &a, &b, k);
  if (ret == 0)
  {
  printf("该数字不存在\n");
  }
  else
  {
     //输出待查数字在矩阵中的坐标
  printf("%d %d", a, b);
  }
  return 0;
}


af32577a540d5109c78dbbecb9e9f5be_1df823a5022d459d9760115ce9985615.png

f0556ada1e7fda15a21d12e7691f4586_7078f0b39b324bf885f1df63f4efa41d.png


目录
相关文章
|
安全 C语言
【C语言刷题】字符串逆序
【C语言刷题】字符串逆序
109 0
|
C语言
【C语言实现青蛙跳台阶问题】
【C语言实现青蛙跳台阶问题】
36 0
|
5月前
|
算法 C语言
C语言实现青蛙跳台阶问题
C语言实现青蛙跳台阶问题
58 5
|
6月前
|
C语言
【C语言】青蛙跳台阶 —— 详解
【C语言】青蛙跳台阶 —— 详解
|
C语言
C语言之每日一题——杨氏矩阵
C语言之每日一题——杨氏矩阵
|
6月前
|
C语言
C语言--杨氏矩阵
C语言--杨氏矩阵
28 0
|
算法 C语言
C语言杨氏矩阵
C语言杨氏矩阵
56 0
|
存储 C语言
【C语言练习】杨氏矩阵、杨辉三角
【C语言练习】杨氏矩阵、杨辉三角
80 0
|
存储 C语言
C语言例题讲解(上)
C语言例题讲解(上)
|
C语言
C语言练习之二分法
C语言练习之二分法
83 0