程序代码:#include
#include
void quick(int *a,int i,int j)
{
int m,n,t;
int tmp;
t=a[i];
m=i;
n=j;
while(m
{
while(a[m]
m++;
/* if(n
a[n++]=a[m]; 这行貌似没用,不用它 */
while(a[n]>t&&n>i)
n--;
/* if(n
a[m--]=a[n]; 这行也是,没弄明白 */
/* 新增个转换过程 */
if(m
{
tmp=a[m];
a[m]=a[n];
a[n]=tmp;
}
m++;
n--;
}
/* a[n]=t; 这行也不知道是做什么的,不用它 */
/* 递归条件没列出,增列条件 */
if(i
quick(a,i,n);
if(j>m)
quick(a,m,j);
}
int main(void)
{ int n[5];
int i;
for (i=0;i<5;i++)
scanf("%d",&n[i]);
quick(n,0,4); /* 传递数组长度值时不对,应该是4 */
for (i=0;i<5;i++)
printf(" %d",n[i]);
printf("\n");
system("pause");
return 0;
}