c语言中数组循环右移n次一个循环实现
时间: 2024-05-03 14:21:48 浏览: 144
下面是一个循环实现C语言中数组循环右移n次的示例代码:
```c
#include <stdio.h>
void rotate(int arr[], int n, int k){
while (k-- > 0){
int tmp = arr[n-1];
for (int i=n-1; i>0; i--){
arr[i] = arr[i-1];
}
arr[0] = tmp;
}
}
int main(){
int arr[] = {1,2,3,4,5};
int n = sizeof(arr)/sizeof(arr[0]);
int k = 2;
printf("Original array: ");
for (int i=0; i<n; i++){
printf("%d ", arr[i]);
}
printf("\n");
rotate(arr, n, k);
printf("Rotated array: ");
for (int i=0; i<n; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,rotate()函数接收一个整型数组、数组长度n和右移次数k作为参数。在每次循环中,将最后一个元素保存到tmp变量中,然后将除了第一个元素之外的所有元素向右移动一个位置。最后,将tmp赋值给第一个元素,完成一次循环右移。通过循环k次,可以实现n次循环右移。
在主函数中,我们定义了一个长度为5的整型数组arr,并将其初始化为{1,2,3,4,5}。我们将k设为2,表示要将数组循环右移两次。然后,使用rotate()函数对数组进行循环右移,并输出原始数组和循环右移后的数组。最终输出结果如下:
```
Original array: 1 2 3 4 5
Rotated array: 4 5 1 2 3
```
阅读全文