c++二维数组查找函数
时间: 2023-12-17 11:02:10 浏览: 103
你可以尝试以下代码实现一个二维数组查找的函数:
```c
#include <stdio.h>
int searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {
if (matrix == NULL || matrixSize == 0 || matrixColSize == NULL || *matrixColSize == 0) {
return 0;
}
int row = matrixSize - 1;
int col = 0;
while (row >= 0 && col < *matrixColSize) {
if (matrix[row][col] == target) {
return 1;
} else if (matrix[row][col] < target) {
col++;
} else {
row--;
}
}
return 0;
}
int main() {
int row = 3;
int col = 4;
int matrix[3][4] = { {1, 4, 7, 11},
{2, 5, 8, 12},
{3, 6, 9, 16} };
int* matrixPtr[3] = {matrix[0], matrix[1], matrix[2]};
int target = 5;
int result = searchMatrix(matrixPtr, row, &col, target);
if (result) {
printf("Target found!\n");
} else {
printf("Target not found.\n");
}
return 0;
}
```
该函数接收一个二维数组 `matrix`,一个整数 `matrixSize` 表示矩阵的行数,一个指向整数数组 `matrixColSize` 的指针表示矩阵每行的列数,以及一个目标值 `target`。函数通过从矩阵的右上角开始,根据目标值逐步缩小搜索范围,最终确定是否找到目标值。
在 `main` 函数中,我们创建一个3x4的矩阵并初始化,然后调用 `searchMatrix` 函数查找目标值。根据查找结果,输出对应的提示信息。
阅读全文