Reverse an Array in C

Reverse Array in C | Program description:- Write a C program to find the reverse of an array. To find the reverse of an array, we can take the help of another array or we can reverse in the same array.

Reverse an Array in C using another array

Procedure to reverse an array using another array
a) Take an array, assume realArray
b) Find the length of the original array. See:- How to find the length of an array in C
c) Declare another array with the same length, reverseArr
d) From realArray, select from the last and insert to reverseArr from the start
e) Repeat (d) until the end of the array

int arr[] = {10, 20, 30}; // original array
int reverseArr[3]; // new array

Then,
reverseArr[0] = arr[2];
reverseArr[1] = arr[1];
reverseArr[2] = arr[0];

Finally, the new array will become,
reverseArr = {30, 20, 10};

C Program to reverse an array using another array

#include <stdio.h>
int main()
{
  // original array
  int realArr[] = {15,25,35,40,50};

  // calculate length
  int length = sizeof(realArr)/sizeof(int);
  
  // declare new array
  int reverseArr[length];

  // reverse the array
  int i = 0;
  int j = length-1;
  // loop
  while(j>=0) {
   reverseArr[i] = realArr[j];

   // update i & j
   i++; // increase i
   j--; // decrease j
  }

  // display original array
  printf("Original array: \n");
  for (int i = 0; i < length; ++i)
  {
   printf("%d ", realArr[i]);
  }

  // display new array
  printf("\nReverse of array: \n");
  for (int i = 0; i < length; ++i)
  {
   printf("%d ", reverseArr[i]);
  }

  return 0;
}

Output:-

Original array:
15 25 35 40 50
Reverse of array:
50 40 35 25 15

Instead of using while loop, we can also use for loop, but it might confuse beginners. Learn more about:- for loop in C

// reverse the array
for (int i = 0, j=length-1; j>=0; i++, j--)
{
   reverseArr[i] = realArr[j];
}

Using the Same Array

Procedure to reverse an array using the same array,
a) Take an array, assume arr
b) Find the length of the array
c) Select the first and last element of the array and swap them
d) Repeat this process until length/2

If the length of the array is even then all elements of the array must swap with a relative element, but if the length of the array is odd then the element at the center position will remain the same.

Example using array of Even length,
arr[] = {10,20,30,40}; // original array
Now, swap arr[0] and arr[3] then
arr[] = {40,20,30,10};
Again, swap arr[1] and arr[2] then
arr[] = {40,30,20,10; // final result

Example using array of Odd length,
arr[] = {10,20,30,40,50}; // original array
Now, swap arr[0] and arr[4] then
arr[] = {50,20,30,40,10};
Again, swap arr[1] and arr[2] then
arr[] = {50,40,30,20,10}; // final result
No need to do anything with element at center position.

#include <stdio.h>
int main()
{
  // original array
  int arr[] = {15,25,35,40,50};

  // calculate length of array
  int length = sizeof(arr)/sizeof(int);

  // display original array
  printf("Original array: \n");
  for (int i = 0; i < length; ++i)
  {
     printf("%d ", arr[i]);
  }
  
  // variables
  int i = 0;
  int j = length-1;
  int temp;

  // reverse the array
  // loop
  while(i <= length/2) {
     // swap
     temp = arr[i];
     arr[i] = arr[j];
     arr[j] = temp;

     // update i & j
     i++; // increase i
     j--; // decrease j
  }

  // display new array
  printf("\nReverse of array: \n");
  for (int i = 0; i < length; ++i)
  {
    printf("%d ", arr[i]);
  }

  return 0;
}

Output:-

Original array:
15 25 35 40 50
Reverse of array:
50 40 35 25 15

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!

Leave a Comment

Your email address will not be published. Required fields are marked *