Arrange Even Odd

Given an array from user the task is to arrange the numbers in such a way that the even numbers appear first in the array followed by odd numbers if any using pointers.

Example:

Consider an array of size 5.

23418

Arranged array.

24831
C
#include <stdio.h>
int main()
{
    int n=0,temp=0;
    printf("Enter the size of array: ");
    scanf("%d",&n);
    int ar[n];
    int *p=ar;
    printf("Enter the array elements:-\n");
    for(int i=0;i<n;i++)
    {
        scanf("%d",p);
        p++;
    }
    p=ar;
    int *ep=ar;
    for(int i=0;i<n;i++)
    {
        if(*p%2==0)
        {
            temp=*ep;
            *ep=*p;
            *p=temp;
            ep++;
        }
        p++;
    }
    p=ar;
    for(int i=0;i<n;i++)
    {
       printf ("%d ",*p);
       p++;
    }
}
C