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