1.编写一个程序,在杨氏矩阵中找一个元素。
int FineNum(const int (*arr)[3], int k, int* row, int* col)
{
int x = 0;
int y = *col - 1;
while (x<=*row && y>=0)
{
if (*(*(arr + x)+y) < k)
{
x++;
}
else if (*(*(arr + x)+y) > k)
{
y--;
}
else
{
*row = x;
*col = y;
return 1;
}
}
return 0;
}
int main()
{
//比如
//1 2 3
//4 5 6
//7 8 9
int arr[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int k = 6;
int row = 3;
int col = 3;
int ret = FineNum(arr, k, &row, &col);
if (ret == 1)
{
printf("找到了\n");
printf("下标为 [%d][%d]", row, col);
}
else
{
printf("找不到\n");
}
}