diff --git a/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise21/exercise21 b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise21/exercise21 new file mode 100755 index 0000000..7a9826f Binary files /dev/null and b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise21/exercise21 differ diff --git a/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise21/exercise21.c b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise21/exercise21.c new file mode 100644 index 0000000..3b8d2b8 --- /dev/null +++ b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise21/exercise21.c @@ -0,0 +1,67 @@ +/* +Write a C program to left rotate an array by n position. +How to rotate left rotate an array n times in C programming. +Logic to rotate an array to left by n position in C program. +*/ + +#include +#define SIZE 10 + +void printArray(int arr[],int size); +void rotateArray(int arr[]); + +int main(){ + + int arr[SIZE]; + int rotation; + + + printf("Enter 10 elements in array:"); + for (int i = 0; i < SIZE; i++) + { + scanf("%d",&arr[i]); + } + + printf("Enter number of times to left rotate:"); + scanf("%d",&rotation); + + rotation = rotation % SIZE; + + printf("Array before rotation\n"); + printArray(arr,SIZE); + + for (int i = 0; i < rotation; i++) + { + rotateArray(arr); + } + + puts(""); + + printf("Array after rotation\n"); + printArray(arr,SIZE); + + return 0; +} + + +void rotateArray(int arr[]){ + int temp; + + temp = arr[0]; + + for (int i = 0; i < SIZE-1; i++) + { + arr[i] = arr[i+1]; + } + + arr[SIZE-1] = temp; +} + + +void printArray(int arr[],int size){ + for (int i = 0; i < size; i++) + { + printf("%d ",arr[i]); + } + +} \ No newline at end of file diff --git a/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise22/exercise22 b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise22/exercise22 new file mode 100755 index 0000000..f83fd41 Binary files /dev/null and b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise22/exercise22 differ diff --git a/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise22/exercise22.c b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise22/exercise22.c new file mode 100644 index 0000000..2daa75d --- /dev/null +++ b/codeforwin_c_exercises/array_and_matrix_programming_exercises/exercise22/exercise22.c @@ -0,0 +1,67 @@ +/* +Write a C program to right rotate an array by n position. +How to right rotate an array n times in C programming. +Logic to rotate an array to right by n position in C program. +*/ + +#include +#define SIZE 10 + +void printArray(int arr[],int size); +void rotateArray(int arr[]); + +int main(){ + + int arr[SIZE]; + int rotation; + + + printf("Enter 10 elements in array:"); + for (int i = 0; i < SIZE; i++) + { + scanf("%d",&arr[i]); + } + + printf("Enter number of times to left rotate:"); + scanf("%d",&rotation); + + rotation = rotation % SIZE; + + printf("Array before rotation\n"); + printArray(arr,SIZE); + + for (int i = 0; i < rotation; i++) + { + rotateArray(arr); + } + + puts(""); + + printf("Array after rotation\n"); + printArray(arr,SIZE); + + return 0; +} + + +void rotateArray(int arr[]){ + int temp; + + temp = arr[SIZE-1]; + + for (int i = SIZE-1; i > 0; i--) + { + arr[i] = arr[i-1]; + } + + arr[0] = temp; +} + + +void printArray(int arr[],int size){ + for (int i = 0; i < size; i++) + { + printf("%d ",arr[i]); + } + +} \ No newline at end of file