c语言编程找出二维数组中的鞍点即该位置上的元素在该行上最大、该列上最小。也可能没有鞍点。
时间: 2023-09-09 22:08:06 浏览: 147
您可以使用双重循环来遍历整个二维数组,并在每个元素处检查是否为鞍点。在每个元素处,您需要比较该元素与其所在行中的所有元素以及其所在列中的所有元素。
以下是一个示例程序,可以找到二维数组中的鞍点,如果没有鞍点则输出相应提示信息:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int matrix[ROWS][COLS] = {{3, 2, 1},
{4, 5, 6},
{9, 8, 7}};
int i, j, max, min, saddle_point_found;
saddle_point_found = 0;
// 检查每个元素是否为鞍点
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
max = matrix[i][0];
min = matrix[0][j];
// 检查该元素是否是行中的最大值
for (int k = 1; k < COLS; k++) {
if (matrix[i][k] > max) {
max = matrix[i][k];
}
}
// 检查该元素是否是列中的最小值
for (int k = 0; k < ROWS; k++) {
if (matrix[k][j] < min) {
min = matrix[k][j];
}
}
// 如果该元素同时是行中最大值和列中最小值,则是鞍点
if (matrix[i][j] == max && matrix[i][j] == min) {
printf("Saddle point found at (%d, %d): %d\n", i, j, matrix[i][j]);
saddle_point_found = 1;
}
}
}
if (!saddle_point_found) {
printf("No saddle point found.\n");
}
return 0;
}
```
输出结果为:
```
Saddle point found at (1, 1): 5
```
阅读全文