c语言寻找二维数组的鞍点
时间: 2023-12-26 17:27:25 浏览: 116
以下是使用C语言寻找二维数组鞍点的示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void findSaddlePoint(int matrix[ROWS][COLS]) {
int i, j;
int saddlePointFound = 0;
for (i = 0; i < ROWS; i++) {
int minRowValue = matrix[i][0];
int minColIndex = 0;
// 找到当前行的最小值
for (j = 1; j < COLS; j++) {
if (matrix[i][j] < minRowValue) {
minRowValue = matrix[i][j];
minColIndex = j;
}
}
// 检查当前行的最小值是否是该列的最大值
int isSaddlePoint = 1;
for (j = 0; j < ROWS; j++) {
if (matrix[j][minColIndex] > minRowValue) {
isSaddlePoint = 0;
break;
}
}
// 如果是鞍点,则打印并标记已找到
if (isSaddlePoint) {
printf("鞍点位置:[%d][%d],值:%d\n", i, minColIndex, minRowValue);
saddlePointFound = 1;
}
}
// 如果没有找到鞍点,则打印提示信息
if (!saddlePointFound) {
printf("没有找到鞍点。\n");
}
}
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
findSaddlePoint(matrix);
return 0;
}
```
该代码定义了一个`findSaddlePoint()`函数,用于寻找二维数组的鞍点。在`main()`函数中,我们定义了一个3×3的二维数组`matrix`,并调用`findSaddlePoint()`函数来找到鞍点。`findSaddlePoint()`函数使用两个嵌套的循环来遍历数组,首先在每一行找到最小值,然后检查该最小值是否是该列的最大值,如果是,则打印该鞍点的位置和值。如果没有找到鞍点,则打印提示信息。
阅读全文