C Program to reverse the first half of array elements
Get array size n and n elements of array, then reverse the first n/2 elements.
Sample Input 1:
5 5 7 9 3 1
Sample Output 1:
7 5 9 3 1
Program or Solution
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *a,n,i,j,temp;
printf("Enter size of array:");
scanf("%d",&n);
a=malloc(sizeof(int)*n);
printf("Enter %d Elements:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0,j=n/2-1;i<j;i++,j--)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf("After reversing the first half:\n");
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
return 0;
}
Program Explanation
initialize i to first location of array and j to middle location of array using i=0 j=n/2-1
swap the elements in location i and j, then increment i by 1 and decrement j by 1.
t=a[i] a[i]=a[j] a[j]=temp repeat the above step till i is less than j