You are here

Reverse array in C

C program to reverse an array using an additional array, using swapping and by using a function. For example, if 'A' is an array of integers with three elements such that,
A[0] = 1, A[1] = 2, A[2] = 3
Then after reversing, the array will be
A[0] = 3, A[1] = 2, A[0] = 1

Reverse array C program

#include <stdio.h>

int main()
{
  int n, c, d, a[100], b[100];

  printf("Enter the number of elements in array\n");
  scanf("%d", &n);

  printf("Enter array elements\n");

  for (c = 0; c < n ; c++)
    scanf("%d", &a[c]);

  // Copying elements into array b starting from the end of array a

  for (c = n - 1, d = 0; c >= 0; c--, d++)
    b[d] = a[c];

  // Copying reversed array into the original, we are modifying the original array.

  for (c = 0; c < n; c++)
    a[c] = b[c];

  printf("The array after reversal:\n");

  for (c = 0; c < n; c++)
    printf("%d\n", a[c]);

  return 0;
}

Reverse array C program output:
Reverse array C program output

Download Reverse array program.

Reverse array by swapping (without using additional memory)

#include <stdio.h>

int main() {
  int array[100], n, c, t, end;

  scanf("%d", &n);
  end = n - 1;

  for (c = 0; c < n; c++)
    scanf("%d", &array[c]);

  for (c = 0; c < n/2; c++) {
    t          = array[c];
    array[c]   = array[end];
    array[end] = t;

    end--;
  }

  printf("Reversed array elements are:\n");

  for (c = 0; c < n; c++)
    printf("%d\n", array[c]);

  return 0;
}

Reverse an array in C using a function

#include <stdio.h>

void reverse_array(int [], int);

int main()
{
  int n, c, a[1000];

  scanf("%d", &n);

  for (c = 0; c < n; c++)
    scanf("%d", &a[c]);

  reverse_array(a, n);

  printf("The array after reversal:\n");

  for (c = 0 ;c < n; c++)
    printf("%d\n", a[c]);

  return 0;
}

void reverse_array(int a[], int n)
{
  int c, t;

  for (c = 0; c < n/2; c++) {
    t = a[c];                  // Swapping
    a[c] = a[n-c-1];
    a[n-c-1] = t;
  }
}