|
发表于 2023-11-14 11:03:24
|
显示全部楼层
本楼为最佳答案
- #include <iostream>
- using namespace std;
- int main() {
- int m, n;
- cin >> m >> n; // 输入数组的行数和列数
- int a[m][n];
- int row_max[m], col_min[n];
- for (int i = 0; i < m; i++) {
- row_max[ i] = 0;
- for (int j = 0; j < n; j++) {
- cin >> a[ i][j];
- if (a[ i][j] > a[ i][row_max[ i]]) {
- row_max[ i] = j; // 找出每行的最大值的列号
- }
- }
- }
- for (int j = 0; j < n; j++) {
- col_min[j] = 0;
- for (int i = 0; i < m; i++) {
- if (a[ i][j] < a[col_min[j]][j]) {
- col_min[j] = i; // 找出每列的最小值的行号
- }
- }
- }
- bool has_saddle_point = false;
- for (int i = 0; i < m; i++) {
- if (col_min[row_max[ i]] == i) {
- cout << "Saddle point:a[" << i << "][" << row_max[ i] << "]=" << a[ i][row_max[ i]] << endl;
- has_saddle_point = true;
- }
- }
- if (!has_saddle_point) {
- cout << "There is no saddle point" << endl;
- }
- return 0;
- }
复制代码 |
|