找出一个二位数组的“鞍点”,即该位置上的元素在该行上最大,在该列 上最小,也可能没有鞍点,C语言运行结果
时间: 2023-11-06 16:14:52 浏览: 96
C语言程序设计-求一个二维数组中的鞍点
5星 · 资源好评率100%
以下是一个找出二维数组鞍点的 C 语言程序:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int i, j, k, is_saddle_point;
// 遍历数组元素
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
is_saddle_point = 1;
// 判断是否为最大值
for (k = 0; k < COLS; k++) {
if (matrix[i][j] < matrix[i][k]) {
is_saddle_point = 0;
break;
}
}
// 判断是否为最小值
if (is_saddle_point) {
for (k = 0; k < ROWS; k++) {
if (matrix[i][j] > matrix[k][j]) {
is_saddle_point = 0;
break;
}
}
}
// 输出鞍点
if (is_saddle_point) {
printf("Saddle point found at (%d,%d): %d\n", i, j, matrix[i][j]);
}
}
}
return 0;
}
```
在上述程序中,我们使用了三重循环来遍历数组元素,判断每个元素是否为鞍点。首先,我们通过内层循环查找该元素所在行的最大值,如果该元素不是该行最大值,则将 `is_saddle_point` 标记为 `0`。如果该元素是该行最大值,则继续通过外层循环查找该元素所在列的最小值,如果该元素不是该列最小值,则将 `is_saddle_point` 标记为 `0`。如果该元素既是该行最大值又是该列最小值,则说明该元素是鞍点,将其输出即可。
阅读全文