二维数组方阵循环右移
时间: 2023-12-20 08:32:29 浏览: 47
以下是一个二维数组方阵循环右移的示例代码:
```python
def rotate_matrix(matrix, m):
n = len(matrix)
m = m % n # 处理m大于n的情况
# 将每一行循环右移m个位置
for i in range(n):
matrix[i] = matrix[i][-m:] + matrix[i][:-m]
return matrix
# 测试
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
m = 2
result = rotate_matrix(matrix, m)
print(result)
```
输出结果为:
```
[[2, 3, 1],
[5, 6, 4],
[8, 9, 7]]
```
这段代码中,我们定义了一个`rotate_matrix`函数,接受一个二维数组`matrix`和一个整数`m`作为参数。函数中,我们首先获取方阵的大小`n`,然后对`m`进行取余操作,以处理`m`大于`n`的情况。接下来,我们遍历每一行,将每一行的元素循环右移`m`个位置。最后,返回修改后的二维数组。
相关问题
二维数组方阵循环右移C语言
以下是C语言中二维数组方阵循环右移的示例代码:
```c
#include <stdio.h>
#define N 3
void rotateMatrix(int matrix[N][N], int k) {
int temp[N];
k = k % N; // 处理k大于N的情况
for (int i = 0; i < N; i++) {
// 将第i行的元素保存到临时数组中
for (int j = 0; j < N; j++) {
temp[j] = matrix[i][j];
}
// 将第i行的元素循环右移k位
for (int j = 0; j < N; j++) {
matrix[i][(j + k) % N] = temp[j];
}
}
}
int main() {
int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int k = 2; // 右移2位
rotateMatrix(matrix, k);
// 输出右移后的二维数组
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
运行结果:
```
2 3 1
5 6 4
8 9 7
```
二维数组for循环对称轴
在Python中,可以使用嵌套的for循环来遍历二维数组的对称轴。对称轴是指二维数组的主对角线,即行索引和列索引相等的位置。下面是一个示例代码,演示了如何使用for循环遍历二维数组的对称轴:
```python
# 定义一个二维数组
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
# 遍历对称轴
for i in range(len(matrix)):
for j in range(i, len(matrix)):
print(matrix[i][j], end=' ')
print()
```
输出结果为:
```
1 2 3
5 6
9
```
在上面的代码中,外层的for循环控制行索引,内层的for循环控制列索引。通过设置内层循环的起始位置为外层循环的索引,可以实现只遍历对称轴的功能。每次遍历时,使用`matrix[i][j]`来访问二维数组的元素。