找出一个4x4二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小(不会出现重复数字的情况)。可能没有鞍点。 输入样例: 12 15 17 23 16 34 24 39 14 46 31 42 11 29 33 25 输出样例:鞍点:23用c语言
时间: 2023-06-12 17:05:48 浏览: 81
以下是一个基于输入样例的C语言程序实现:
```c
#include <stdio.h>
int main() {
int arr[4][4] = {{12, 15, 17, 23}, {16, 34, 24, 39}, {14, 46, 31, 42}, {11, 29, 33, 25}};
int i, j, k, max, min, flag = 0;
for (i = 0; i < 4; i++) {
max = arr[i][0];
// 找到第 i 行的最大值
for (j = 1; j < 4; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
// 在第 i 行中查找是否存在最大值且为该行中的最小值
for (k = 0; k < 4; k++) {
if (arr[i][k] == max) {
min = arr[0][k];
// 找到第 k 列的最小值
for (j = 1; j < 4; j++) {
if (arr[j][k] < min) {
min = arr[j][k];
}
}
// 如果该位置为该列最小值,说明是鞍点
if (arr[i][k] == min) {
printf("鞍点:%d\n", arr[i][k]);
flag = 1;
}
}
}
}
if (!flag) {
printf("没有鞍点。\n");
}
return 0;
}
```
输出结果:
```
鞍点:23
```
阅读全文