从键盘输入一个二维数组,如果每一行最大值不在第一行,就把它换到前面
时间: 2023-06-01 14:04:45 浏览: 83
抱歉,我可以回答这个问题。你可以使用以下代码实现:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> a(n, vector<int>(m));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> a[i][j];
}
}
for (int i = 0; i < n; ++i) {
int max_row = i;
for (int j = i + 1; j < n; ++j) {
if (*max_element(a[j].begin(), a[j].end()) > *max_element(a[max_row].begin(), a[max_row].end())) {
max_row = j;
}
}
if (max_row != i) {
swap(a[i], a[max_row]);
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << a[i][j] << ' ';
}
cout << endl;
}
return 0;
}
```
这段代码从键盘输入一个n行m列的二维数组,然后依次检查每一行的最大元素是否在第一行,若不在,则将该行与第一行进行交换。最后输出交换后的二维数组。
阅读全文