溫馨提示×

c語言怎么實現循環右移

小億
362
2024-03-18 09:25:49
欄目: 編程語言

要實現循環右移,可以利用位運算和取余來完成。下面是一個示例代碼:

#include <stdio.h>

void rightRotate(int *arr, int n, int k) {
    k = k % n;
    
    for(int i = 0; i < k; i++) {
        int temp = arr[n-1];
        
        for(int j = n-1; j > 0; j--) {
            arr[j] = arr[j-1];
        }
        
        arr[0] = temp;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 2;
    
    rightRotate(arr, n, k);
    
    for(int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}

在這個示例中,我們定義了一個rightRotate函數,它接受一個整型數組arr、數組長度n和右移位數k作為參數。首先對k取余確保kn的范圍內,然后循環執行右移操作。在右移過程中,我們先保存最后一個元素的值,然后依次將前面的元素向后移動一位,最后將保存的值放到第一個位置。最后在main函數中調用rightRotate函數并打印結果。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女