二维数组旋转180度
时间: 2023-12-09 10:05:26 浏览: 120
要将一个二维数组旋转180度,可以按照以下步骤进行操作:
1. 首先,将数组进行水平翻转。即将数组的第一行和最后一行交换、第二行和倒数第二行交换,以此类推,直到数组中心。
2. 接下来,将数组进行垂直翻转。即将数组的第一列和最后一列交换、第二列和倒数第二列交换,以此类推,直到数组中心。
完成这两步操作后,原始二维数组就会被旋转180度。
以下是一个示例的实现代码:
```python
def rotate_array(arr):
# 水平翻转
arr = arr[::-1]
# 垂直翻转
for row in arr:
row.reverse()
return arr
# 测试
array = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_array = rotate_array(array)
print(rotated_array)
```
运行结果为:
```
[[9, 8, 7],
[6, 5, 4],
[3, 2, 1]]
```
这样,二维数组就完成了180度的旋转。
相关问题
c++二维数组旋转180
对一个二维数组进行旋转180度,可以按照以下步骤进行操作:
1. 首先,创建一个新的二维数组b[x][x],其中x是原数组的行数和列数中的较大值。
2. 然后,遍历原数组的每个元素,将其按照旋转180度的规则放入新数组中。具体规则是:新数组的第i行第j列的元素是原数组的第n-1-i行第m-1-j列的元素,其中n是原数组的行数,m是原数组的列数。
3. 最后,遍历新数组,按照相应格式输出旋转后的二维数组。
下面是一个示例代码,可以实现对二维数组进行180度旋转:
#include <iostream>
#define N 105
using namespace std;
void Rotate180(int a[N][N], int n, int m) {
int x = n > m ? n : m;
int b[N][N];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
b[i][j] = a[n-1-i][m-1-j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << b[i][j] << " ";
}
cout << endl;
}
}
int main() {
int n, m;
int a[N][N];
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
Rotate180(a, n, m);
return 0;
}
C#二维数组旋转180
以下是C#中二维数组顺时针旋转180度的代码示例:
```csharp
int[,] a = new int[3, 3] { { 1, 2, 3 }, { 2, 3, 4 }, { 4, 5, 6 } };
int[,] b = new int[3, 3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
b[i, j] = a[2 - i, 2 - j];
}
}
```
以上代码中,我们定义了一个3x3的二维数组a,并将其初始化。然后,我们定义了一个新的3x3的二维数组b,并使用两个for循环遍历a数组中的每个元素,将其旋转180度后存储到b数组中。
阅读全文