C Program to Read integers into an array and Reversing them using Pointers
Write a C program using pointers to read in an array of integers and print its elements in reverse order.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include<stdio.h> #include<conio.h> #define MAX 30 void main() { int size, i, arr[MAX]; int *ptr; clrscr(); ptr = &arr[0]; printf("\nEnter the size of array : "); scanf("%d", &size); printf("\nEnter %d integers into array: ", size); for (i = 0; i < size; i++) { scanf("%d", ptr); ptr++; } ptr = &arr[size - 1]; printf("\nElements of array in reverse order are :"); for (i = size - 1; i >= 0; i--) { printf("\nElement%d is %d : ", i, *ptr); ptr--; } getch(); } |
Output :
1 2 3 4 5 6 7 8 |
Enter the size of array : 5 Enter 5 integers into array : 11 22 33 44 55 Elements of array in reverse order are : Element 4 is : 55 Element 4 is : 44 Element 4 is : 33 Element 4 is : 22 Element 4 is : 11 |
Program to read integers into an array and reversing them using pointers Explanation :
- We have declared one pointer variable and one array.
1 2 |
int size,i,arr[MAX]; int *ptr; |
- Address of first element of array is stored inside pointer variable.
1 |
ptr=&arr[0]; |
- Accept Size of an Array.
1 2 |
printf("Enter the size of array : "); scanf("%d",&size); |
- Now we have accepted element one by one using for loop and scanf statement .
1 2 3 4 5 |
printf("\nEnter %d integers into array: ", size); for (i = 0; i < size; i++) { scanf("%d", ptr); ptr++; } |
- Increment pointer variable so that it will then point to next element of array.
- After accepting all elements store address of last element inside pointer variable.
1 |
ptr=&arr[size-1]; |
- Again using reverse for loop and printf statement print an array.
1 2 3 4 |
for(i=size-1;i>=0;i--) { printf("nElement%d is %d :",i,*ptr); ptr--; } |