### 思路
1. 输入一个3行4列的整数矩阵。
2. 遍历每一行,找到每一行的最大值及其列索引。
3. 检查该列索引对应的列中是否是最小值。
4. 如果是,则输出该值;如果没有找到鞍点,输出“NO”。
### 伪代码
1. 初始化一个3行4列的矩阵 `matrix`。
2. 输入矩阵的元素。
3. 遍历每一行:
- 找到每一行的最大值及其列索引。
- 检查该列索引对应的列中是否是最小值。
- 如果是,输出该值并结束程序。
4. 如果没有找到鞍点,输出“NO”。
### C++代码
#include <iostream>
#include <limits.h>
using namespace std;
int main() {
int matrix[3][4];
// 输入3行4列的矩阵
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
cin >> matrix[i][j];
}
}
bool found = false;
// 遍历每一行
for (int i = 0; i < 3; ++i) {
int max_in_row = INT_MIN;
int col_index = -1;
// 找到每一行的最大值及其列索引
for (int j = 0; j < 4; ++j) {
if (matrix[i][j] > max_in_row) {
max_in_row = matrix[i][j];
col_index = j;
}
}
// 检查该列索引对应的列中是否是最小值
bool is_saddle_point = true;
for (int k = 0; k < 3; ++k) {
if (matrix[k][col_index] < max_in_row) {
is_saddle_point = false;
break;
}
}
if (is_saddle_point) {
cout << max_in_row << endl;
found = true;
break;
}
}
if (!found) {
cout << "NO" << endl;
}
return 0;
}