bsc

Comprehensive codebase and cou...
Log | Files | Refs | Activity | README | LICENSE

root / semester_1 / assignment-secondary / assignment-s-13-2.c

assignment-s-13-2.c (1346B)


      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 struct Array
      8 {
      9     int size;
     10     int *arr;
     11 };
     12 
     13 void inputarr(int[], int);
     14 void display(int[], int);
     15 void reverse(struct Array *);
     16 
     17 int main()
     18 {
     19     struct Array array;
     20     printf("How many element do you want to add: ");
     21     scanf("%d", &array.size);
     22     array.arr = (int *)malloc((array.size) * sizeof(int));
     23     inputarr(array.arr, array.size);
     24     printf("\n=== Before Reverse ===\n");
     25     display(array.arr, array.size);
     26     reverse(&array);
     27     printf("\n\n=== After Reverse ===\n");
     28     display(array.arr, array.size);
     29     free(array.arr);
     30     return 0;
     31 }
     32 
     33 void inputarr(int arr[], int n)
     34 {
     35     int i;
     36     for (i = 0; i < n; i++)
     37     {
     38         printf("Enter element %d: ", i + 1);
     39         scanf("%d", &arr[i]);
     40     }
     41 }
     42 
     43 void display(int arr[], int n)
     44 {
     45     int i;
     46     for (i = 0; i < n; i++)
     47     {
     48         printf("\nIndex: %-2d | Value: %-5d | Address: %p", i, arr[i], (void *)&arr[i]);
     49     }
     50 }
     51 
     52 void reverse(struct Array *array)
     53 {
     54     int *start = array->arr;
     55     int *end = array->arr + (array->size - 1);
     56     while (start < end)
     57     {
     58         *start = *start ^ *end;
     59         *end = *start ^ *end;
     60         *start = *start ^ *end;
     61         start++;
     62         end--;
     63     }
     64 }
© notamitgamer • Site Built: 2026-09-05 01:53:16 UTC • git-mirror commit: c170d72 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror