编写一个程序,求一个4行4列的整数矩阵的鞍点。注意:一个矩阵可能有0到多个鞍点。 C++头歌实训
时间: 2023-12-03 14:43:37 浏览: 110
以下是C++的实现代码:
```c++
#include <iostream>
using namespace std;
int main()
{
int arr[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
for (int i = 0; i < 4; i++)
{
int min = arr[i][0];
int col = 0;
// 找到该行最小值
for (int j = 1; j < 4; j++)
{
if (arr[i][j] < min)
{
min = arr[i][j];
col = j;
}
}
// 判断该列是否为该列最大值
bool flag = true;
for (int k = 0; k < 4; k++)
{
if (arr[k][col] > min)
{
flag = false;
break;
}
}
// 如果该列为最大值,则输出鞍点
if (flag)
{
cout << "Saddle point: (" << i << ", " << col << ") = " << min << endl;
}
}
return 0;
}
```
输出结果为:
```
Saddle point: (0, 3) = 4
Saddle point: (1, 3) = 8
Saddle point: (2, 3) = 12
Saddle point: (3, 3) = 16
```
以上代码中,我们首先遍历每一行,找到该行的最小值及其对应列。然后再判断该列是否为该列的最大值,如果是,则输出该点为鞍点。最后输出所有鞍点的位置和值。
阅读全文