C++马鞍数
时间: 2023-07-11 18:10:51 浏览: 114
马鞍数是指一个二维矩阵中的一个数,它在该行中最小,但在该列中最大。以下是一个 C++ 实现的示例代码:
```c++
#include <iostream>
using namespace std;
const int MAX = 100;
int a[MAX][MAX];
int main()
{
int n, m; // n 行 m 列
cin >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
int ans = -1;
for (int i = 0; i < n; i++)
{
int minRow = a[i][0], minCol = 0;
for (int j = 1; j < m; j++)
if (a[i][j] < minRow)
{
minRow = a[i][j];
minCol = j;
}
bool flag = true;
for (int k = 0; k < n; k++)
if (a[k][minCol] > minRow)
{
flag = false;
break;
}
if (flag)
{
ans = minRow;
break;
}
}
if (ans == -1)
cout << "不存在马鞍数" << endl;
else
cout << "马鞍数为:" << ans << endl;
return 0;
}
```
代码的思路为:遍历每一行,找到该行中的最小值,判断该最小值是否为该列中的最大值,若是则该数为马鞍数。