C++矩阵列交换算法实现及输入输出处理详解
根据您的描述,这是一个矩阵列交换问题。以下是C++实现,包含完整代码和注释。 ## 🧮 问题分析 输入一个r行c列的矩阵,交换第x列和第y列(列编号从1开始),输出结果。 ## 💻 C++代码实现 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int r, c; cin >> r >> c; // 输入行列数 // 使用vector存储矩阵 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; // 输入要交换的列号(1-based) // 转换为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; } ``` ## 🔍 代码说明 - 使用`vector<vector<int>>`动态存储矩阵,避免固定大小限制。 - 列号转换为0-based索引后,逐行执行`swap`操作。 - 输出时通过判断是否最后一列来控制空格,保证格式正确。 ## ⏱️ 复杂度分析 - 时间复杂度:O(r),只需遍历每一行进行交换。 - 空间复杂度:O(r*c),存储整个矩阵。 ## 📝 示例验证 输入: ``` 3 3 1 2 3 4 5 6 7 8 9 1 3 ``` 输出: ``` 3 2 1 6 5 4 9 8 7 ``` ######[AI问答 | 520点数解答 | 2026-08-07 23:31:09]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)556
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)341
- C++ 实现:轻松找出 n 个整数中的第二小值(字节豆包 | 260点数解答 | 2026-02-07 21:19:29)87
- C++实现找出数组中第二小的值(字节豆包 | 526点数解答 | 2026-03-27 19:40:26)62
- 找出数组中第二小值的C++代码实现(字节豆包 | 696点数解答 | 2026-03-28 19:40:41)60
- C++实现数组特定位置最小值交换并输出指定元素(字节豆包 | 607点数解答 | 2026-04-04 19:31:04)68
- C++实现找出n个整数中第二小的值(字节豆包 | 361点数解答 | 2026-04-06 20:52:02)73
- Python求数组中第二小值的三种实现方法及对比分析(DeepSeek | 1323点数解答 | 2026-05-09 19:32:54)56
- C++入门:选择查找法求数组中第二小的值(DeepSeek | 1089点数解答 | 2026-05-09 19:33:39)54
- C++实现找出数组中第二小的值(字节豆包 | 594点数解答 | 2026-05-09 20:38:56)41
- C++ 实现找出 n 个整数中第二小的值(字节豆包 | 533点数解答 | 2026-05-23 20:50:33)50
- C++实现数组第二小值查找算法及代码解析(DeepSeek | 1159点数解答 | 2026-08-08 11:23:28)2