#include <stdio.h>
void reverse_array(int *ptr, int n) {
// Your logic here
int *end = ptr+n-1;
while(ptr<end)
{
int temp = *ptr;
*ptr = *end;
*end = temp;
ptr++;
end--;
}
}
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;
}
🔁 Reverse Array Using Pointers – Approach
start
→ beginning of arrayend
→ end of array (start + n - 1
)*start
and *end
.start++
, end--
until they meet.*(arr + i)
instead of arr[i]
.
Input
5 1 2 3 4 5
Expected Output
5 4 3 2 1