C program to reverse an Array in two ways

In this tutorial, we are going to learn to write a C program to reverse the Array. Here we are not just going to print the array in reverse order, but we will reverse the original array.

You can check our program in C to print the array in reverse order.

There are multiple ways to write the reverse array program like using the secondary array or without using any secondary array. We will see both ways.

C program to reverse an Array with the help of a second array

#include <stdio.h>

int main() {
    int size, i, startIndex, lastIndex;

    // Heading for the program
    printf("=== C Program to Reverse an Array ===\n");

    // Taking size of the array
    printf("Enter size of the array: ");
    scanf("%d", &size);

    int arr[size], reverse[size];

    // Taking the input for the array
    for(i = 0; i < size; i++) {
        printf("Please give value for index %d: ", i);
        scanf("%d", &arr[i]);
    }

    // Setting the start and last indices
    startIndex = 0;
    lastIndex = size - 1;

    // Reversing the array
    while(lastIndex >= 0) {
        reverse[startIndex] = arr[lastIndex];
        startIndex++;
        lastIndex--;
    }

    // Printing the reversed array
    printf("Array After Reversing:\n");
    for(i = 0; i < size; i++) {
        printf("%d ", reverse[i]);
    }

    return 0;
}

Output

=== C Program to Reverse an Array ===
Enter size of the array: 5
Please give value for index 0: 4
Please give value for index 1: 3
Please give value for index 2: 1
Please give value for index 3: 3
Please give value for index 4: 7
Array After Reversing:
7 3 1 3 4 

Reverse an Array without using second array and temp variable in C

#include <stdio.h>

int main() {
    int size, i, startIndex, lastIndex;

    // Print program description
    printf("=== C Program to reverse an Array ===\n");

    // Take input for the size of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);

    int arr[size];

    // Taking the input for the array
    for(i = 0; i < size; i++) {
        printf("Please give value for index %d: ", i);
        scanf("%d", &arr[i]);
    }

    // Initialize start and last index for reversal
    startIndex = 0;
    lastIndex = size - 1;

    // Logic to reverse the array using swapping
    while(startIndex < lastIndex) {
        arr[startIndex] = arr[startIndex] + arr[lastIndex];
        arr[lastIndex] = arr[startIndex] - arr[lastIndex];
        arr[startIndex] = arr[startIndex] - arr[lastIndex];
        startIndex++;
        lastIndex--;
    }

    // Printing the reversed array
    printf("Reversed array is: \n");
    for(i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

Output

=== C Program to reverse an Array ===
Enter the size of the array: 5
Please give value for index 0: 4
Please give value for index 1: 3
Please give value for index 2: 5
Please give value for index 3: 7
Please give value for index 4: 8
Reversed array is: 
8 7 5 3 4
What did you think?

Similar Reads

Hi, Welcome back!
Forgot Password?
Don't have an account?  Register Now