酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]