关于#c语言#的问题:写了快速排序的程序

问题遇到的现象和发生背景

写了快速排序的程序,求大家帮忙看看是哪里出问题了啊

用代码块功能插入代码,请勿粘贴截图

void qsort(int* arr, int lo,int hi)
{
int mid = arr[lo];
int temp;
int i = lo;
int j = hi;

while (i < j)//停下
{
    while (arr[j] > arr[mid])
    {
        j--;
    }//j向左遍历,直到停下

    while (arr[i] < arr[mid])
    {
        i++;
    }//i向右遍历,直到停下

    if (i < j)
    {
        //交换arr[i]与arr[j]
        temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

arr[lo] = arr[i];
arr[i] = mid;


qsort(arr,lo,i-1);
qsort(arr,j+1,hi);

}

int main()
{
int a[] = {3,4,6,2,5,7,10};
int n = sizeof(a) / sizeof(a[0]);
int lo = 0;
int hi = n - 1;
qsort(a, lo, hi);
for (int i = 0; i < hi; i++)
{
printf("%d",a[i]);
}
return 0;

}

运行结果及报错内容

是死循环,哭了

int mid = (lo+hi)/2;