pc-ip-10.c (1305B)
1 /* 2 * Question 10: 3 * Write a function that reverses each elements of an array in place, using only a single pointer argument, and return void. 4 */ 5 6 #include <stdio.h> 7 #include <stdlib.h> 8 9 void inputArray(int[], int); 10 void printArray(int[], int); 11 void reverse(int *); 12 13 int main() 14 { 15 int n, i, *arr = NULL; 16 printf("Enter the number of element: "); 17 scanf("%d", &n); 18 arr = (int *)malloc(n * sizeof(int)); 19 if (arr == NULL) 20 { 21 printf("\nMemory allocation failed."); 22 return 1; 23 } 24 inputArray(arr, n); 25 printf("\nGiven Array: "); 26 printArray(arr, n); 27 for (i = 0; i < n; i++) 28 { 29 reverse(&arr[i]); 30 } 31 printf("\nUpdated Array: "); 32 printArray(arr, n); 33 free(arr); 34 return 0; 35 } 36 37 void inputArray(int arr[], int n) 38 { 39 int i; 40 for (i = 0; i < n; i++) 41 { 42 printf("Enter element %d: ", i + 1); 43 scanf("%d", &arr[i]); 44 } 45 } 46 47 void printArray(int arr[], int n) 48 { 49 int i; 50 printf("["); 51 for (i = 0; i < n; i++) 52 { 53 printf("%d", arr[i]); 54 if (i < n - 1) 55 { 56 printf(", "); 57 } 58 } 59 printf("]"); 60 } 61 62 void reverse(int *n) 63 { 64 int temp = *n; 65 int rev = 0; 66 while (temp > 0) 67 { 68 rev = (rev * 10) + (temp % 10); 69 temp /= 10; 70 } 71 *n = rev; 72 }