酷代码 AI
菜单
服务商

题目描述 给定一个 5×5 的矩阵(数学上,一个 r×c 的矩阵是一个由 r 行 c 列元素排列成的 矩形阵列),将第 n 行和第 m 行交换,输出交换后的结果。 输入格式 输入共 6 行,前 5 行为矩阵的每一行元素,元素与元素之间以一个空格分开。 第 6 行包含两个整数 m、n,以一个空格分开(1≤m,n≤5)。 输出格式 输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。 输入输出样例 输入 #1 1 2 2 1 2 5 6 7 8 3 9 3 0 5 3 7 2 1 4 6 3 0 8 2 4 1 5 输出 #1 3 0 8 2 4 5 6 7 8 3 9 3 0 5 3 7 2 1 4 6 1 2 2 1 2 用c++语言

```cpp #include <iostream> #include <vector> int main() { // 定义一个 5x5 的二维向量来存储矩阵 std::vector<std::vector<int>> matrix(5, std::vector<int>(5)); // 读取矩阵的每一行元素 for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) { std::cin >> matrix[i][j]; } } // 读取要交换的两行的行号 m 和 n int m, n; std::cin >> m >> n; // 由于输入的行号是从 1 开始的,转换为 0 索引 --m; --n; // 交换第 m 行和第 n 行 std::swap(matrix[m], matrix[n]); // 输出交换后的矩阵 for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) { if (j > 0) { std::cout << " "; } std::cout << matrix[i][j]; } std::cout << std::endl; } return 0; } ``` 代码解释 1. 矩阵存储:使用一个二维向量 `matrix` 来存储 5x5 的矩阵,它的大小为 5 行 5 列。 2. 读取矩阵元素:通过两层嵌套的 `for` 循环,依次读取矩阵每一行的元素并存储到 `matrix` 中。 3. 读取要交换的行号:读取输入的要交换的两行的行号 `m` 和 `n`,并将其转换为 0 索引(因为向量的索引从 0 开始)。 4. 交换行:使用 `std::swap` 函数交换 `matrix` 中第 `m` 行和第 `n` 行的元素。 5. 输出交换后的矩阵:再次使用两层嵌套的 `for` 循环,输出交换后的矩阵,每行元素之间用空格分隔,每行末尾换行。 复杂度分析 - 时间复杂度:$O(1)$,因为矩阵的大小是固定的 5x5,所有操作的时间复杂度都是常数级的。 - 空间复杂度:$O(1)$,主要的空间开销是存储 5x5 的矩阵,空间大小是固定的。 [2025-11-16 20:45:32 | AI问答 | 591点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多