一个C语言的问题想请教
#include<stdio.h>#define N 10
//int p,q,m;
int A[N]={5,8,1,10,6,3,12,2,15,20};
void partition(int m,int p){
int i,v,t;
v=A[m];
i=m;
while(1)
{
do{
i++;
}while(A[i]<v);
do{
p--;
}while(A[p]>v);
if(i<p){
t=A[i];A[i]=A[p];A[p]=t;
}
else
break;
}
A[m]=A[p];A[p]=v;
}
void quiksort(int p,int q){//你原先的定义是不对的你
int j; //要那么写的话应该这样int p,q; void quiksort(p,q);
if(p<q){
j=q+1;
partition(p,j);
quiksort(p,j-1);
quiksort(j+1,q);
}
}
void main(){
int i;
quiksort(0,9);//你写的quiksort真是前后不一致术语笔误
printf("the sort result:\n************\n");
for(i=0;i<N;i++)
printf("%d\t",A[i]);
}
这个程序数不出结果。。我知道是静如了死循环。。哪位高手能告诉我到底是哪的问题
谢谢》。。。。。。。。。。。。。。。。。