1 条题解
-
0
【例69.2】 矩阵交换行
解题思路
保存5行矩阵,再将行号m、n转换0起始下标,交换两个整行向量,原列顺序不变。
正确性说明
依题目给出的对应关系逐项处理,位置与原输入保持明确对应。每一步完成当前项的全部贡献,结束后得到所有位置或字符的目标结果。
易错点
交换的是行,不是列;输出5行。
复杂度
固定25元素,时间O(1),空间O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); vector<vector<int>> a(5, vector<int>(5)); for (auto &r : a) for (int &x : r) cin >> x; int m, n; cin >> m >> n; swap(a[m - 1], a[n - 1]); for (auto &r : a) { for (int j = 0; j < 5; j++) { if (j) cout << " "; cout << r[j]; } cout << "\n"; } return 0; }
- 1