Array Reversal in C HackerRank Solution
Given an array, of size n, reverse it.
Example: If array, arr = [1, 2, 3, 4, 5], after reversing it, the array should be,
arr = [5, 4, 3, 2, 1].
Input Format
The first line contains an integer,n, denoting the size of the array. The next line contains n space-separated integers denoting the elements of the array.
Constraints
1 <= n <= 1000
1 <= arri subset <= 1000, where arrisubset is the ith superset element of the array.
Output Format
The output is handled by the code given in the editor, which would print the array.
Sample Input 0
6
16 13 7 2 1 12
Sample Output 0
12 1 2 7 13 16
Explaination 0
Given array, arr = [16,13,7,2,1,12]. After reversing the array, arr = [12,1,2,7,13,16]
Sample Input 1
7
1 13 15 20 12 13 2
Sample Output 1
2 13 12 20 15 13 1
Sample Input 2
8
15 5 16 15 17 11 5 11
Sample Output 2
11 5 11 17 15 16 5 15
Solution
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, *arr, i;
scanf("%d", &num);
arr = (int*) malloc(num * sizeof(int));
for(i = 0; i < num; i++) {
scanf("%d", arr + i);
}
/* Write the logic to reverse the array. */
int temp;
for(i = 0; i < num/2; i++) {
temp = arr[i];
arr[i] = arr[num-1-i];
arr[num-1-i] = temp;
}
for(i = 0; i < num; i++)
printf("%d ", *(arr + i));
return 0;
}
Steps used in solving the problem -
-
First, we added the required header file.
-
The first block of code is already given that will read user-specified number of integers and dynamically allocates an array of that size.
-
Then, we used a for loop to reverses the order of the first half of an array.
-
At last, we printed the reversed array.