C语言4×4打印一维数组实现旋转
时间: 2024-09-18 21:09:25 浏览: 37
在C语言中,为了实现一个4x4的一维数组(实际上是二维数组,因为它们通常被表示为一维数组)的顺时针或逆时针旋转,我们可以先将其视为一维,并通过临时变量交换元素的位置来达到旋转的效果。这里是一个简单的顺时针旋转90度的例子:
```c
#include <stdio.h>
void rotate(int arr[16], int n) {
int temp;
for (int i = 0; i < n / 2; i++) {
// 交换左半部分和右半部分的对应元素
temp = arr[i]; // 存储左上角元素
arr[i] = arr[n - 1 - i]; // 将右下角元素放到左上角
arr[n - 1 - i] = arr[n - 1 - (n - 1 - i)]; // 右上角到右下角
arr[n - 1 - (n - 1 - i)] = arr[i + (n / 2)]; // 左下角到右上角
arr[i + (n / 2)] = temp; // 将临时存储的左上角元素放回原位
}
}
// 示例数组
int main() {
int arr[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
rotate(arr, sizeof(arr) / sizeof(arr[0]));
// 打印旋转后的数组
for (int i = 0; i < 16; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行这个程序,你会看到原始数组按顺时针旋转了90度。如果你想逆时针旋转,只需将`arr[i] = arr[n - 1 - i];`这一步骤改为`arr[i] = arr[i + (n / 2)];`即可。
阅读全文