c++查找一个4行4列的地形网格中的鞍点鞍点:在所在行最大,在所在列中最小提示: 1、在文件122cpp基础上完成 2、可以先找每一行的最大值,然后判断该元素是否是列中最小
时间: 2024-02-16 12:03:06 浏览: 116
好的,这是一个典型的二维数组问题,请看下面的代码实现:
```c++
#include <iostream>
using namespace std;
const int N = 4;
int main()
{
int a[N][N];
int rowmax[N], colmin[N];
// 输入矩阵
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
cin >> a[i][j];
// 找出每一行的最大值
for (int i = 0; i < N; i++)
{
int maxn = a[i][0];
for (int j = 1; j < N; j++)
maxn = max(maxn, a[i][j]);
rowmax[i] = maxn;
}
// 找出每一列的最小值
for (int j = 0; j < N; j++)
{
int minn = a[0][j];
for (int i = 1; i < N; i++)
minn = min(minn, a[i][j]);
colmin[j] = minn;
}
// 找出所有的鞍点
bool flag = false;
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if (a[i][j] == rowmax[i] && a[i][j] == colmin[j])
{
cout << "鞍点坐标为:(" << i << "," << j << ")" << endl;
flag = true;
}
if (!flag)
cout << "矩阵中不存在鞍点!" << endl;
return 0;
}
```
代码思路:
1. 首先,输入一个 4 行 4 列的矩阵;
2. 然后,遍历每一行,找到每一行的最大值,保存在 `rowmax` 数组中;
3. 接着,遍历每一列,找到每一列的最小值,保存在 `colmin` 数组中;
4. 最后,遍历整个矩阵,找到所有的鞍点,并输出它们的坐标。
注意:这里的鞍点指的是既是它所在行的最大值,又是它所在列的最小值的元素,如果找不到任何鞍点,输出“矩阵中不存在鞍点!”
阅读全文