Find the Number of Non Repeated Elements in an Array

Given an array, find the number of elements which occurs only once.

For Example:

If the given array is
1 1 2 3 4 2

The numbers which occurs only once are 3 & 4.
So, the count of such numbers is 2.

Implementation:

#include <stdio.h>
#include <stdlib.h>
#define MAX 1000000
int main(void) {
 int *a,i,n,hash[MAX],flag=1,count=0;
 
 /* Get the number of elements of the array */
 scanf("%d",&n);
 
 /* Dynamically allocate the memory block for n integers and store the starting address of the block in a */
 a=(int*)malloc(sizeof(int)*n);
 
 /* Initialize the hash array with 0*/
 memset(hash,0,sizeof(hash));
 
 /* Get the elements of the array thereby increment the count of each of the element */
 for(i=0;i<n;i++)
 {
  scanf("%d",(a+i));
  hash[*(a+i)]++;
 }
 
 for(i=0;i<n;i++)
 {
  /* If the count of the each element in the array is 1 */
  /* increment the variable count */
  /* set the flag to zero */
  if(hash[*(a+i)]==1)
  {
   //printf("%d ",*(a+i));
   //hash[*(a+i)]=0;
   count++;
   //flag=0;
  }
 }
 /* If the flag is not set to zero, then there are no such elements in the list*/
 //if(flag)
 printf("%d",count);
 //printf("no such element found");
 return 0;
}