#include <stdio.h> void reverse_array(int arr[], int n) { // Your logic here int c=1; for (int i=n-2; i>=0;i--){ arr[i+2*c]=arr[i]; c++; } for(int i=0;i<n;i++){ arr[i]=arr[n-1+i]; } } int main() { int n; scanf("%d", &n); int arr[100]; for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } reverse_array(arr, n); for (int i = 0; i < n; i++) { printf("%d", arr[i]); if(i < n-1){ printf(" "); } } return 0; }
Approach:Not at all a good approach
Actual better approach: int i = 0, j = n - 1; // Swap elements from front and back until the middle is reached while (i < j) { // Temporarily hold one element int temp = arr[i]; // Swap front and back arr[i] = arr[j]; arr[j] = temp; // Move indices towards the center i++; j--; }}
Test Cases
Test Results
Input
5 1 2 3 4 5
Expected Output
5 4 3 2 1