这是快速排序的一趟排序,输出答案不对,请问是什么问题?大神求教
#include<stdio.h>main()
{
int a[20];
int i,c,n,temp,h,l=0;
printf("Input the length of the array(<20):");
scanf("%d",&n);
printf("\nInput %d datas:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("\nThe array are:");
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
h=n-1;
temp=a[0];
while(l<h)
{
while(temp<a[h])
h=h-1;
if(a[l]>a[h])
{
c=a[l];
a[l]=a[h];
a[h]=c;
l=l+1;
}
else
h=h-1;
if(a[h]<a[l])
{
c=a[l];
a[l]=a[h];
a[h]=c;
h=h-1;
}
else
l++;
}
printf("\n\nThe array after quicksort are:");
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n\n");
}