Instagram
youtube
Facebook
Twitter

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.