c++ 遍历行,最大值不是对应列怎么编写
时间: 2024-03-14 20:45:08 浏览: 19
以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <limits> // 包含了 std::numeric_limits<int>::min() 函数
using namespace std;
int main() {
// 假设有一个二维数组 matrix
vector<vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int max_value = numeric_limits<int>::min(); // 初始化最大值为 int 类型的最小值
pair<int, int> max_index = make_pair(-1, -1); // 初始化最大值的行和列索引
// 遍历每一行
for (int i = 0; i < matrix.size(); i++) {
// 记录当前行的最大值和列索引
int row_max_value = numeric_limits<int>::min(); // 初始化当前行的最大值为 int 类型的最小值
int row_max_index = -1; // 初始化当前行的最大值列索引为 -1
for (int j = 0; j < matrix[i].size(); j++) {
if (matrix[i][j] > row_max_value) {
row_max_value = matrix[i][j];
row_max_index = j;
}
}
// 如果当前行的最大值比之前记录的最大值大,则更新最大值和行列索引
if (row_max_value > max_value) {
max_value = row_max_value;
max_index = make_pair(i, row_max_index);
}
}
// 遍历对应列,找到最大值的位置
int column_max_index = -1; // 初始化对应列的最大值索引为 -1
for (int i = 0; i < matrix.size(); i++) {
if (matrix[i][max_index.second] > matrix[column_max_index][max_index.second]) {
column_max_index = i;
}
}
cout << "最大值为 " << max_value << ",位置为 (" << max_index.first << ", " << max_index.second
<< "),对应列的最大值位置为 (" << column_max_index << ", " << max_index.second << ")" << endl;
return 0;
}
```
该代码中,`numeric_limits<int>::min()`函数用于获取 int 类型的最小值,`make_pair()`函数用于创建一个二元组,`vector`是C++中的标准容器,`cout`用于输出结果。