Array Reversal in C - Hacker Rank Solution
Array Reversal in C - Hacker Rank Solution |
Problem
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].
Task
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<=1000, where arri is the ith 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
Explanation 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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> #include <stdlib.h> int main() { int num, *arr,*arr2,i; scanf("%d", &num); arr = (int*) malloc(num * sizeof(int)); for(i = 0; i < num; i++) { scanf("%d", arr + i); } arr2 = (int*) malloc(num * sizeof(int)); for(i=1;i<=num;i++) { arr2[i-1] = arr[num-i]; } for(i = 0; i < num; i++) printf("%d ", *(arr2 + i)); return 0; } |
Whats the workflow of the above code
The code is wrong it just show error on debugging
This comment has been removed by the author.
#include
#include
int main()
{
int num, *arr,*arr2,i;
scanf("%d", &num);
arr = (int*) malloc(num * sizeof(int));
for(i = 0; i < num; i++) {
scanf("%d", arr + i);
}
arr2 = (int*) malloc(num * sizeof(int));
for(i=1;i<=num;i++)
{
arr2[i-1] = arr[num-i];
}
arr2[num-1]=arr[0];
for(i = 0; i < num; i++)
printf("%d ", *(arr2 + i));
return 0;
}