题解 | 调整方阵
#include <bits/stdc++.h> #include <utility> #include <vector> using namespace std; void swapRows(vector<vector<int>>& matrix, int row1, int row2) { if (row1 >= matrix.size() || row2 >= matrix.size() || row1 < 0 || row2 < 0) { cout << "行索引超出范围!" << endl; return; } swap(matrix[row1], matrix[row2]); } void exchange(vector<vector<int>>& a, int k) { int l = k, max = a[l][k]; for (int i = l; i < a.size(); i++) { if (a[i][k] >= max) { max = a[i][k]; l = i; } } swapRows(a, k, l); } int main() { int n; while (cin >> n) { vector<vector<int>>a(n, vector<int>(n)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++)cin >> a[i][j]; } for(int i=0;i<n;i++)exchange(a, i); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<<a[i][j]<<" "; }cout<<endl; } } }
你无法想象swap函数的功能到底有多强大