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?