刚学C语言,求大佬看看,为什么我只能输出here1,然后就没了?是哪里错了?

#include
int main()
{
int num[]={23,45,17,11,13,89,72,26,3,17,11,13};
void quicksort(int num[12],int begin,int end);
int begin,end,i;

begin=0;end=11;
quicksort(num,begin,end);

 for(i=0;i<12;i++){
    printf("%4d",num[i]);
 }

 return 0;

}

void quicksort(int num[12],int begin,int end){
if(begin int i=begin;
int j=end;
int temp=num[begin];
while(i while(itemp){
j--;
}
num[i]=num[j];
while(i<j&&num[i]<temp){
i++;
}
num[j]=num[i];
}
num[i]=temp;
printf("here1");
quicksort(num,begin,i-1);//左边
printf("here2");
quicksort(num,i+1,end);//右边

printf("here3");
}else{
return;
}
}

quicksort没有贴对,看着问题很多,也没有写对
参考这个
https://www.cnblogs.com/yuiffy/p/4423666.html
代码贴正确了才好调试

quicksort函数中,以下函数片段有问题:

if(begin int i=begin;
int j=end;
int temp=num[begin];
while(i while(itemp){
j--;
}

if后和while后只能接逻辑表达式