This program is supposed to impelement quicksort but it is not working
Code:
include<stdio.h>
#include<conio.h>
#include<process.h>
void quicksort(int a[] ,int low,int high);
int partition(int a[] , int low,int high);
//quick sort
void main()
 {
 int a[10], n ,i;
 clrscr();
 printf("enter the total no. of elements \n");
 scanf("%d",&n);
 printf("enter the elements of the array \n");
  for(i=0;i<n;i++){
   scanf("%d",&a[i]);}
  quicksort(a,0,n-1);
  printf("sorted array is \n");
   for(i=0;i<n;i++)
    printf("%d",a[i]);
    getch();
  }
 void quicksort(int a[] ,int low,int high)
  {
   int mid ;
    if (low<high)
     {
     mid=partition(a,low,high);
     quicksort(a,low,mid-1);// partioned elemnt in its final position at mid
     quicksort(a,mid+1,high);
      }
   }
  partition(int a[], int low,int high)
   {
   int temp,i,pivot,j;
   i=low;
   j=high;
   pivot=a[i];
    while (i<=j)
     {
       while(a[i]<=pivot && i<=high){i=i+1;}
       while(a[j]>pivot){j=j-1;}
      if(i<j){
	temp=a[i];
	a[j]=a[i];
	a[j]=temp;
	}
      temp=pivot;
      pivot=a[j];
      a[j]=temp;
      }
      return j;
}