c语言将二维数组向右翻转90度
时间: 2024-06-30 09:00:42 浏览: 106
在C语言中,将一个二维数组(矩阵)向右翻转90度可以通过几个步骤完成,通常使用两层嵌套循环,第一层遍历行,第二层遍历列,然后交换对应元素的位置。这里是一个简单的示例代码:
```c
#include <stdio.h>
void reverse2DArray(int arr[], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols / 2; j++) { // 仅对偶数列进行交换,避免越界
int temp = arr[i][j];
arr[i][j] = arr[i][cols - 1 - j]; // 交换(i, j)和(i, cols-j-1)
arr[i][cols - 1 - j] = temp;
}
}
}
// 示例用法
int main() {
int arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int rows = sizeof(arr) / sizeof(arr[0]);
int cols = sizeof(arr) / sizeof(arr);
printf("Original array:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
reverse2DArray(arr, rows, cols);
printf("After 90-degree right rotation:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这个代码首先定义了一个名为`reverse2DArray`的函数,接收二维数组、行数和列数作为参数。然后在两个嵌套循环中,通过临时变量交换了矩阵对角线上的元素,实现了右旋转的效果。
阅读全文