要實現c語言數組的循環右移,可以通過以下步驟實現:
以下是一個示例代碼:
#include <stdio.h>
void rightRotate(int arr[], int n, int shift) {
int temp[shift];
// 將后shift個元素復制到臨時數組中
for (int i = 0; i < shift; i++) {
temp[i] = arr[n - shift + i];
}
// 將前面的元素向后移動shift個位置
for (int i = n - 1; i >= shift; i--) {
arr[i] = arr[i - shift];
}
// 將臨時數組中的元素復制到原數組中
for (int i = 0; i < shift; i++) {
arr[i] = temp[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int shift = 2;
rightRotate(arr, n, shift);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
以上代碼實現了一個將數組循環右移的功能,并輸出移動后的結果。