c++找出二维数组中的鞍点
时间: 2023-10-27 21:07:08 浏览: 109
鞍点指的是在行方向上是最大值,在列方向上是最小值的元素。以下是一个示例代码,可以找出二维数组中的鞍点。
```c++
#include <iostream>
using namespace std;
const int N = 100;
int a[N][N];
int main() {
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
bool flag = true;
for (int i = 0; i < n; i++) {
int k = 0;
for (int j = 1; j < m; j++) {
if (a[i][j] > a[i][k]) {
k = j;
}
}
bool isSaddle = true;
for (int l = 0; l < n; l++) {
if (a[l][k] < a[i][k]) {
isSaddle = false;
break;
}
}
if (isSaddle) {
flag = false;
cout << "Saddle Point: " << a[i][k] << endl;
}
}
if (flag) {
cout << "No Saddle Point" << endl;
}
return 0;
}
```
在这个程序中,我们首先输入一个 $n\times m$ 的矩阵,然后用两个循环遍历所有的元素。对于每一行,我们找到该行的最大值,并检查该列是否是最小值。如果是,则该元素是一个鞍点,输出该元素的值。如果没有找到鞍点,则输出“无鞍点”。