Performing right rotation in array means, our last element will become first element and shift each array elements towards right by one. Here we are going to perform right rotation by 2 times means we will shift each array element toward right two times.
Our problem statement
Suppose we have an array that has elements a={1,2,3,4,5}. As we have to perform right rotation in array, after first time right rotation element will become {5,1,2,3,4}. Now after performing right rotation again, I mean 2nd time, array will become {4,5,1,2,3}. So this the exact output which we want by our program for an input array.
C Program to perform right rotation by 2 in array
#include<stdio.h> int main() { int i,size,j,k,temp; printf("C Program to perform two time right rotation \n"); printf("First enter number of elements you want in array\n"); scanf("%d", &size); int arr[size]; for(i = 0; i < size; i++) { printf("Please give value for index %d : ",i); scanf("%d",&arr[i]); } for(i=0; i<2; i++) { temp=arr[size-1]; for(j=size-1; j>=0; j--) { arr[j]=arr[j-1]; } arr[0]=temp; } printf("Array after two time right rotation \n"); for(i=0; i<size; i++) { printf("%d ",arr[i]); } return 0; }
Output
[wpusb]