编写一个c++程序,求一个4行4列的整数矩阵的鞍点。注意:一个矩阵可能有0到多个鞍点。
时间: 2023-12-03 10:42:54 浏览: 146
矩阵中寻找鞍点_C++_算法_矩阵鞍点算法_鞍点_
5星 · 资源好评率100%
下面是一个求解4行4列整数矩阵鞍点的C++程序:
```cpp
#include <iostream>
using namespace std;
const int ROWS = 4;
const int COLS = 4;
int main() {
int matrix[ROWS][COLS] = {{5, 3, 2, 4},
{1, 6, 4, 7},
{8, 7, 9, 6},
{3, 5, 1, 2}};
bool has_saddle_point = false;
for (int i = 0; i < ROWS; i++) {
int min_row_element = matrix[i][0];
int min_row_index = 0;
for (int j = 1; j < COLS; j++) {
if (matrix[i][j] < min_row_element) {
min_row_element = matrix[i][j];
min_row_index = j;
}
}
bool is_saddle_point = true;
for (int k = 0; k < ROWS; k++) {
if (matrix[k][min_row_index] > min_row_element) {
is_saddle_point = false;
break;
}
}
if (is_saddle_point) {
cout << "Saddle point found at (" << i+1 << ", " << min_row_index+1 << "): " << min_row_element << endl;
has_saddle_point = true;
}
}
if (!has_saddle_point)
cout << "No saddle point found!" << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个4行4列的整数矩阵,并且设定了`ROWS`和`COLS`常量来表示矩阵的行数和列数。然后我们在一个双重循环中遍历整个矩阵,对于每一行先找到该行中最小的元素以及对应的列号,然后再检查该列中是否存在该行中最小的元素以上的元素,如果不存在,就说明该元素是一个鞍点,并输出其位置和数值。如果整个矩阵都遍历完了,但没有发现任何一个鞍点,就输出提示信息。
阅读全文