C Program to perform circular Array Rotation

Get array size n and n elements of array, rotate the elements of array in left side for m times.

Sample Input 1:

5 5 7 9 3 1 2

Sample Output 1:

9 3 1 5 7

Try your Solution

Strongly recommended to Solve it on your own, Don't directly go to the solution given below.

#include<stdio.h> int main() { //write your code here }

Program or Solution

				
			
					
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int *a,n,i,j,m,temp;
	printf("Enter size of array:");
	scanf("%d",&n);

	a=malloc(sizeof(int)*n);

	printf("Enter %d Elements:",n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}	
	printf("Enter number of rotations:");
	scanf("%d",&m);
	for(i=1;i<=m;i++)
	{
		temp=a[0];
		for(j=1;j<n;j++)
		{
			a[j-1]=a[j];
		}
		a[n-1]=temp;
	}
	printf("After %d rotations:\n",m);
	for(i=0;i<n;i++)
	{
		printf("%d ",a[i]);
	}
	return 0;
}
			
				
			

Program Explanation

repeat the below steps for m times: store the a[0] in temp temp=a[0] move all elements located in 1 to n-1 to its previous location a[j-1]=a[j] store the temp in a[n-1] a[n-1]=temp

Comments