帮助! C语言实现的快速排序问题

请帮我找下我的代码哪里出问题了 看半天了,也对着别人的代码找了,就是不知道哪里出问题了。求帮助!


```c
#include 

#define SIZE 6

void quick_sort(int* arr,int low,int high){

    if(low >= high){//如果传入的左大于等于右 就说明递归结束
        return;
    }

    int l = low;//左下标
    int h = high;//右下标    

    int base = arr[low];//基准

    while(l != h){
        while(arr[l] <= base && l < h){
            l++;//向右查找
        }
        while(arr[h] >= base && h > l){
            h--;//向左查找
        }

        if(h > l){
            int tmp = arr[h];
            arr[h] = arr[l];
            arr[l] = tmp;
        }
    }

    //base找到该待的位置
    arr[low] = arr[l];
    arr[l] = base;

    //继续分开排
    quick_sort(arr,low,l - 1);
    quick_sort(arr,l + 1,high);

}

int main()
{
    //创建一个数组
    int num[SIZE] ={0};
    int i;

    //输入数字
    for(i =0; i < SIZE; i++)
    {
        scanf("%d",&num[i]);
    }

    quick_sort(num, 0, SIZE-1);

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

    return 0;
}

你说的别人的代码贴出来看看