杨氏矩阵:有一个二维数组.,数组的每行从左到右是递增的,每列从上到下是递增的;在这样的数组中查找一个数字是否存在。
#include<stdio.h>
void my_resear(int (*arr)[3], int x, int y,int a)
{
int i = 0, j = 0,count =0;
int right = *(*(arr + x + i- 1) + y + j - 1);
int left = *(*(arr + i) + j);
if (a<left || a>right)
printf("该数列没有这个数字\n");
else
{
for (i = 0; i <= x - 1; i++)
{
for (j = 0; j <= y - 1; j++)
{
if (a == *(*(arr + i) + j))
{
printf("找到了!这个数字位于该数列的第%d行,第%d列!\n", i, j);
count++;
}
}
}
if (count == 0)
printf("该数列没有这个数字!\n");
}
}
int main()
{
int a;
int arr1[][3] = { { 1, 2, 3 }, { 4, 999, 1000 }, { 7, 1000, 1001 } };
printf("请输入想要查找的数字:");
scanf("%d", &a);
my_resear(arr1,3,3,a);
return 0;
}