50. Reverse an Array Using Only Pointers

Back To All Submissions
Previous Submission
Next Submission

Code

#include <stdio.h>

void reverse_array(int *ptr, int n) {
    // Your logic here
    int *left = ptr, *right = ptr + n-1;

    while(left < right){
        int temp =*left;
        *left = *right;
        *right = temp;
        left++;
        right--;
    }
}

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;
}

Solving Approach

Use left and right pointers pointing to the first and last element of the array, and keep swapping till you converge in the center. 

 

 

Was this helpful?
Upvote
Downvote