找出一个二位数组的“鞍点”,即该位置上的元素在该行上最大,在该列 上最小,也可能没有鞍点。c语言
时间: 2023-11-06 11:03:18 浏览: 112
以下是一个 C 语言程序,用于找出二维数组的鞍点,如果有的话。
```c
#include <stdio.h>
#define ROWS 4
#define COLS 4
int main()
{
int matrix[ROWS][COLS] = {{9,8,7,6},
{3,2,1,4},
{5,3,8,2},
{6,7,2,9}};
int i, j, row, col, is_saddle;
for (i = 0; i < ROWS; i++) {
row = i;
col = 0;
for (j = 1; j < COLS; j++) {
if (matrix[i][j] > matrix[row][col]) {
col = j;
}
}
is_saddle = 1;
for (j = 0; j < ROWS; j++) {
if (matrix[j][col] < matrix[row][col]) {
is_saddle = 0;
break;
}
}
if (is_saddle) {
printf("Saddle point found at (%d,%d): %d\n", row, col, matrix[row][col]);
break;
}
}
if (!is_saddle) {
printf("No saddle point found.\n");
}
return 0;
}
```
这个程序使用两个循环来查找鞍点。外层循环遍历每一行,内层循环找到该行中的最大值。然后,它检查该最大值是否是该列中的最小值。如果是,那么它就找到了一个鞍点。如果找不到鞍点,则打印“未找到鞍点”的消息。
阅读全文