4.翻转矩阵。输入一个矩阵,将矩阵顺时针翻转180度。\n包括多组输入输出,第一行输入两个数字n和m,下面n行输入一\n个n*m的矩阵。(0<n<=100,0<m<=100),输出翻转后的矩阵。\n输入样例
时间: 2023-05-31 19:20:21 浏览: 154
### 回答1:
题目描述:翻转矩阵。输入一个矩阵,将矩阵顺时针翻转180度。包括多组输入输出,第一行输入两个数字n和m,表示下面输入的是一个n*m的矩阵。接下来n行输入矩阵,最后输出翻转后的矩阵。
例如:
输入:
3 3
1 2 3
4 5 6
7 8 9
输出:
9 8 7
6 5 4
3 2 1
解析:将矩阵顺时针旋转180度,即先上下翻转,再左右翻转。具体实现可以先上下翻转,再沿着对角线翻转即可。
### 回答2:
翻转矩阵实际上就是将矩阵旋转180度。我们可以通过以下步骤来实现:
1. 首先读入一个矩阵,矩阵的行数为n,列数为m。
2. 然后我们将矩阵的第i行和第n-i行交换位置,这样就完成了上下翻转。
3. 接着我们将矩阵的第j列和第m-j列交换位置,这样就完成了左右翻转。
4. 最后输出翻转后的矩阵即可。
以下是代码实现:
```python
n, m = map(int, input().split())
matrix = []
for i in range(n):
row = list(map(int, input().split()))
matrix.append(row)
# 上下翻转
for i in range(n // 2):
matrix[i], matrix[n-i-1] = matrix[n-i-1], matrix[i]
# 左右翻转
for i in range(n):
for j in range(m // 2):
matrix[i][j], matrix[i][m-j-1] = matrix[i][m-j-1], matrix[i][j]
# 输出结果
for i in range(n):
for j in range(m):
print(matrix[i][j], end=' ')
print()
```
如果我们输入以下样例:
```
3 4
1 2 3 4
5 6 7 8
9 10 11 12
```
则输出结果为:
```
12 11 10 9
8 7 6 5
4 3 2 1
```
可以看到,矩阵已经完成了顺时针翻转180度。
### 回答3:
翻转矩阵,指的是将一个矩阵沿着中心对称轴旋转180度。具体方法是先将矩阵上下翻转(即第一行和最后一行交换,第二行和倒数第二行交换,以此类推),然后再左右翻转(即矩阵中每行的元素顺序反转)。这样做后,矩阵就被顺时针翻转了180度。
对于这个问题,我们可以按照以下步骤来实现:
1. 读入矩阵的行数n和列数m。
2. 创建一个n*m的数组matrix,用于存储输入的矩阵。
3. 读入矩阵的元素,并存储到数组matrix中。
4. 对矩阵进行上下翻转:
- 从第一行向下遍历到第n/2行,对于每一行,将它和第n-i+1行交换。
5. 对矩阵进行左右翻转:
- 对于每一行,从第一列向右遍历到第m/2列,对于每一个位置,将它和第m-j+1列交换。
6. 输出翻转后的矩阵。
具体实现请见以下代码:
```python
n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for i in range(n)]
# 上下翻转
for i in range(n // 2):
matrix[i], matrix[n - i - 1] = matrix[n - i - 1], matrix[i]
# 左右翻转
for i in range(n):
for j in range(m // 2):
matrix[i][j], matrix[i][m - j - 1] = matrix[i][m - j - 1], matrix[i][j]
# 输出翻转后的矩阵
for i in range(n):
for j in range(m):
print(matrix[i][j], end=' ')
print()
```
需要注意的是,在实现时,我们可以只处理矩阵的前一半行和前一半列,因为矩阵的后一半行和后一半列已经被交换过了。另外,要注意输出时的格式,可以在每个元素后面加一个空格来区分不同的元素,以免输出的矩阵看起来杂乱无章。
阅读全文