C语言实现数组元素循环后移
时间: 2024-12-20 18:30:23 浏览: 14
在C语言中,如果你想实现一个数组元素的循环后移,可以创建一个新的函数,例如`rotate_array`,它接受数组、数组长度以及步长作为输入参数。这里是一个简单的例子:
```c
#include <stdio.h>
// 定义函数来循环右移数组元素
void rotate_array(int arr[], int len, int steps) {
if (len <= 0 || steps <= 0) {
printf("Invalid input, length and steps must be positive.\n");
return;
}
// 如果步长大于长度,取模操作使得步长有效
steps = steps % len;
for (int i = 0; i < steps; ++i) {
// 使用临时变量存储第一个元素
int temp = arr[0];
// 将后续元素向左移动一位
for (int j = 0; j < len - 1; ++j) {
arr[j] = arr[j + 1];
}
// 将第一个元素放回原位置
arr[len - 1] = temp;
}
}
int main() {
int my_array[] = {1, 2, 3, 4, 5};
int array_length = sizeof(my_array) / sizeof(my_array[0]);
int rotation_steps = 2;
printf("Original array: ");
for (int i = 0; i < array_length; ++i) {
printf("%d ", my_array[i]);
}
rotate_array(my_array, array_length, rotation_steps);
printf("\nArray rotated by %d positions: ", rotation_steps);
for (int i = 0; i < array_length; ++i) {
printf("%d ", my_array[i]);
}
return 0;
}
```
当你运行这个程序,原始数组会按照指定的步长进行循环右移。
阅读全文