C++矩阵列交换算法实现及索引转换要点
## 📝 矩阵列交换实现方案 ### 🔍 问题分析 需要交换矩阵的第 `x` 列和第 `y` 列,输入格式依次为:行列数、矩阵元素、待交换列号。输出交换后的完整矩阵。 ### 💻 C++ 代码实现 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int r, c; cin >> r >> c; vector<vector<int>> matrix(r, vector<int>(c)); // 读取矩阵元素 for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { cin >> matrix[i][j]; } } int x, y; cin >> x >> y; // 将列号转换为0-based索引 x--; y--; // 交换第x列和第y列 for (int i = 0; i < r; i++) { swap(matrix[i][x], matrix[i][y]); } // 输出结果 for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { cout << matrix[i][j]; if (j != c - 1) cout << " "; } cout << endl; } return 0; } ``` ### 🧠 关键算法步骤 1. 用二维 `vector` 存储矩阵,大小为 `r x c`。 2. 遍历每行,利用 `swap` 函数交换指定列的元素。 3. 按行输出,每行元素用空格分隔。 ### 📋 输入输出示例 **输入:** ``` 3 3 1 2 3 4 5 6 7 8 9 1 3 ``` **输出:** ``` 3 2 1 6 5 4 9 8 7 ``` ### ⚠️ 注意事项 - 列号从1开始,代码中需转换为0-based索引。 - 使用 `swap` 时,确保 `x` 和 `y` 在有效范围内。 - 输出格式严格控制每行末尾无多余空格。 ######[AI问答 | 513点数解答 | 2026-08-09 22:24:36]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)558
- DBA必知!MySQL索引、主键、唯一索引与联合索引的区别揭秘(百度文心 | 294点数解答 | 2023-11-09 18:00:37)272
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)312
- C++ 实现:轻松找出 n 个整数中的第二小值(字节豆包 | 260点数解答 | 2026-02-07 21:19:29)90
- C++实现找出数组中第二小的值(字节豆包 | 526点数解答 | 2026-03-27 19:40:26)65
- 找出数组中第二小值的C++代码实现(字节豆包 | 696点数解答 | 2026-03-28 19:40:41)62
- C++实现数组特定位置最小值交换并输出指定元素(字节豆包 | 607点数解答 | 2026-04-04 19:31:04)69
- C++实现找出n个整数中第二小的值(字节豆包 | 361点数解答 | 2026-04-06 20:52:02)76
- Python求数组中第二小值的三种实现方法及对比分析(DeepSeek | 1323点数解答 | 2026-05-09 19:32:54)58
- C++入门:选择查找法求数组中第二小的值(DeepSeek | 1089点数解答 | 2026-05-09 19:33:39)56
- C++实现找出数组中第二小的值(字节豆包 | 594点数解答 | 2026-05-09 20:38:56)42
- C++ 实现找出 n 个整数中第二小的值(字节豆包 | 533点数解答 | 2026-05-23 20:50:33)51