用c语言写一段旋转数组的示例
时间: 2024-12-06 11:25:22 浏览: 12
好的,以下是一个使用C语言编写的旋转数组示例代码:
```c
#include <stdio.h>
void rotate(int arr[], int n, int k) {
int temp[k];
for (int i = 0; i < k; i++) {
temp[i] = arr[(i + n - k) % n];
}
for (int i = 0; i < n; i++) {
arr[i] = temp[(i + k - 1) % n];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 3;
rotate(arr, n, k);
printf("旋转后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码定义了一个名为`rotate`的函数,用于将数组`arr`旋转`k`个位置。函数接受三个参数:数组`arr`本身、数组的大小`n`和旋转的步数`k`。首先,创建一个临时数组`temp`,将原始数组中的元素按顺序存储在其中。然后,使用循环将`temp`中的元素逐个赋值回原始数组,实现旋转。最后,打印出旋转后的数组。在主函数中,定义了一个示例数组`arr`,调用`rotate`函数进行旋转,并输出结果。
运行这段代码,将会输出旋转后的数组为:4 5 1 2 3。请注意,这里的旋转是按照顺时针方向进行的,如果需要逆时针方向旋转,可以将代码中的步长`k`改为负数。
阅读全文