二维数组方阵循环右移C语言
时间: 2023-12-20 21:32:29 浏览: 130
以下是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
```
阅读全文