鞍点是指矩阵中的某元素A[i][j]是第i行中值最小的元素,同时又是第j列中值最大的元素。试设计一个算法求矩阵A中的所有鞍点。 ,c语言实现
时间: 2023-06-15 20:07:36 浏览: 81
以下是一个简单的 C 语言实现,通过两次循环,分别找到每一行的最小值和每一列的最大值,然后判断是否是鞍点:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void findSaddlePoints(int matrix[ROWS][COLS]) {
int rowMin, colMax;
int i, j, k;
for (i = 0; i < ROWS; i++) {
rowMin = matrix[i][0];
for (j = 0; j < COLS; j++) {
if (matrix[i][j] < rowMin) {
rowMin = matrix[i][j];
}
}
for (j = 0; j < COLS; j++) {
if (matrix[i][j] == rowMin) {
colMax = matrix[i][j];
for (k = 0; k < ROWS; k++) {
if (matrix[k][j] > colMax) {
colMax = matrix[k][j];
}
}
if (colMax == rowMin) {
printf("(%d,%d) = %d\n", i+1, j+1, matrix[i][j]);
}
}
}
}
}
int main() {
int matrix[ROWS][COLS] = {
{9, 8, 7},
{5, 3, 2},
{6, 6, 7}
};
findSaddlePoints(matrix);
return 0;
}
```
输出结果为:
```
(2,1) = 5
```
阅读全文