You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.1 KiB
C

/* Cyclic rotation of array elements - Program to cyclically rotate elements in array. Program should accept a choice that in which direction to rotate - left or right. Suppose array A contains elements {1,2,3,4,5} and if choice is right then o/p should be {5,1,2,3,4} and if choice is left then o/p should be {2,3,4,5,1} */
#include <stdio.h>
#include <conio.h>
void main()
{
int i, n, t, x[50] ;
char choice;
clrscr() ;
printf("Enter the number of elements: ") ;
scanf("%d", &n) ;
printf("Enter the elements: \n") ;
for(i=0 ; i<n ; i++)
scanf("%d", &x[i]) ;
printf("Do you want to rotate towards right or left ? \n") ;
printf("Enter R for right and L for left: ") ;
scanf(" %c", &choice) ;
printf("Original array is as shown: \n") ;
for(i=0 ; i<n ; i++)
printf("%d ", x[i]) ;
printf("\n") ;
if(choice=='R'||choice=='r')
{
/* Rotating elements to right */
t=x[n-1] ;
for(i=n-1 ; i>=1 ; i--)
x[i]=x[i-1] ;
x[0]=t ;
}
else if(choice=='L'||choice=='l')
{
/* Rotating elements to left */
t=x[0] ;
for(i=0 ; i<=n-2 ; i++)
x[i]=x[i+1] ;
x[n-1]=t ;
}
else
printf("Wrong choice entered. \n") ;
printf("New array is as shown: \n") ;
for(i=0 ; i<n ; i++)
printf("%d ", x[i]) ;
getch();
}
/*
Output1:
Enter the number of elements: 4
Enter the elements:
5 6 7 8
Do you want to rotate towards right or left ?
Enter R for right and L for left: R
Original array is as shown:
5 6 7 8
New array is as shown:
8 5 6 7
Output2:
Enter the number of elements: 4
Enter the elements:
5 6 7 8
Do you want to rotate towards right or left ?
Enter R for right and L for left: L
Original array is as shown:
5 6 7 8
New array is as shown:
6 7 8 5
Output3:
Enter the number of elements: 3
Enter the elements:
1 2 4
Do you want to rotate towards right or left ?
Enter R for right and L for left: K
Original array is as shown:
1 2 4
Wrong choice entered.
New array is as shown:
1 2 4
*/