用c++编写一个程序,求一个4行4列的整数矩阵的鞍点。注意:一个矩阵可能有0到多个鞍点。
时间: 2024-02-05 20:10:37 浏览: 31
一个矩阵的鞍点是指在该行上最小的元素,而在该列上是最大的元素。以下是用 C++ 编写的程序,可以求出一个 4 行 4 列的整数矩阵的所有鞍点:
```c++
#include <iostream>
using namespace std;
int main() {
int matrix[4][4] = {{1, 2, 3, 5},
{4, 7, 6, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
int row_min, col_max;
bool has_saddle_point = false;
for (int i = 0; i < 4; i++) {
row_min = matrix[i][0];
for (int j = 0; j < 4; j++) {
if (matrix[i][j] < row_min) {
row_min = matrix[i][j];
}
}
for (int j = 0; j < 4; j++) {
col_max = matrix[0][j];
for (int k = 0; k < 4; k++) {
if (matrix[k][j] > col_max) {
col_max = matrix[k][j];
}
}
if (row_min == col_max) {
cout << "Saddle point found at (" << i << ", " << j << "): " << matrix[i][j] << endl;
has_saddle_point = true;
}
}
}
if (!has_saddle_point) {
cout << "No saddle point found." << endl;
}
return 0;
}
```
这个程序首先定义了一个 4 行 4 列的整数矩阵,然后使用两个循环来遍历矩阵的每个元素。对于每一行,它找到该行上最小的元素。然后,对于每一列,它找到该列上最大的元素。如果某个元素既是它所在行的最小值,又是它所在列的最大值,那么就找到了一个鞍点。程序将该鞍点的位置和值输出,并将 `has_saddle_point` 标记为 `true`,表示已经找到了至少一个鞍点。如果程序没有找到任何鞍点,则输出一条相应的消息。