#503. 矩阵交换行

矩阵交换行

矩阵行交换

题目描述

给定一个 5×5 的矩阵。

矩阵是由若干行和若干列组成的矩形数字排列。

现在要求:

将矩阵中的第 m 行和第 n 行进行交换。

输出交换后的矩阵。

例如:

交换第 1 行和第 5 行:

交换前:

1 2 3
4 5 6
7 8 9

交换后:

7 8 9
4 5 6
1 2 3

输入格式

输入共 6 行

5 行

输入矩阵的内容。

每行包含:

5 个整数

整数之间使用一个空格分隔。

6 行

输入两个整数:

m n

表示需要交换的两行编号。

其中:

1 ≤ m,n ≤ 5

输出格式

输出交换后的矩阵。

共输出:

5 行

每行包含:

5 个整数

相邻整数之间使用一个空格分隔。


样例输入

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

样例输出

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

解题思路

本题核心:

二维数组 + 行交换

使用二维数组保存矩阵:

a[5][5]

输入矩阵后:

  1. 读取需要交换的两行 m、n
  2. 将第 m 行和第 n 行交换

因为矩阵行编号从:

1 ~ 5

而 C++ 数组下标从:

0 ~ 4

所以需要:

m--;
n--;

交换方法

假设交换:

第 m 行
第 n 行

例如:

交换:

第1行
第5行

原矩阵:

1 2 2 1 2   ← 第1行
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
3 0 8 2 4   ← 第5行

交换后:

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