C Program To Right Rotate The Elements Of An Array

If the value of n is 1, each element in the array will shift one position to the right. Consequently, the initial first element will now occupy the second position, the second element will shift to the third position, and this pattern continues until the last element wraps around to become the new first element of the array.

ALGORITHM:

  • STEP 1: START
  • STEP 2: INITIALIZE arr ={1, 2, 3, 4, 5 }.
  • STEP 3: length= sizeof(arr)/sizeof(arr[0])
  • STEP 4: SET n =3
  • STEP 5: PRINT "Original Array"
  • STEP 6: SET i=0. REPEAT STEP 7 and STEP 8 UNTIL i<length
  • STEP 7: PRINT arr[i]
  • STEP 8: i=i+1.
  • STEP 9: SET i=0. REPEAT STEP 10 to STEP 16 UNTIL i<n
  • STEP 10: DEFINE j, last.
  • STEP 11: last = arr[length-1]
  • STEP 12: SET j=length-1. REPEAT STEP 13 and STEP 14 UNTIL j>0
  • STEP 13: arr[j]= arr[j-1]
  • STEP 14: j=j-1.
  • STEP 15: arr[0]= last
  • STEP 16: i=i+1.
  • STEP 17: PRINT "Array after right rotation"
  • STEP 18: SET i=0. REPEAT STEP 19 and STEP 20 UNTIL i<length
  • STEP 19: PRINT arr[i]
  • STEP 20: i=i+1.
  • STEP 21: RETURN 0.
  • STEP 22: END.
  • PROGRAM:

    Example
    
    #include <stdio.h>  
    
       
    
    int main()  
    
    {  
    
        //Initialize array   
    
        int arr[] = {1, 2, 3, 4, 5};   
    
        //Calculate length of array arr  
    
        int length = sizeof(arr)/sizeof(arr[0]);  
    
        //n determine the number of times an array should be rotated  
    
        int n = 3;  
    
          
    
        //Displays original array  
    
        printf("Original array: \n");  
    
        for (int i = 0; i < length; i++) {   
    
            printf("%d ", arr[i]);   
    
        }   
    
          
    
        //Rotate the given array by n times toward right  
    
        for(int i = 0; i < n; i++){  
    
            int j, last;  
    
            //Stores the last element of the array  
    
            last = arr[length-1];  
    
          
    
            for(j = length-1; j > 0; j--){  
    
                //Shift element of array by one  
    
                arr[j] = arr[j-1];  
    
            }  
    
            //Last element of array will be added to the start of array.  
    
            arr[0] = last;  
    
        }  
    
          
    
        printf("\n");  
    
          
    
        //Displays resulting array after rotation  
    
        printf("Array after right rotation: \n");  
    
        for(int i = 0; i< length; i++){  
    
            printf("%d ", arr[i]);  
    
        }  
    
        return 0;  
    
    }
    

Output:

Output

Original Array:

1   2   3   4   5

Array after right rotation:

3   4   5   1   2

Input Required

This code uses input(). Please provide values below: