能不能用最中间的那个数的值做指标修改程序

#include
using namespace std;
void qsort(int a[10010], int l, int r)
{
int i, j;
//int a[10010]={};
if (l >= r) // 改成>=
return;
i = l;
j = r;
int x = a[l];
do
{
while (a[i] >= x)
{
i++;
if (i == r)
break;
}
while (a[j] <= x)
{
j--;
if (j == l)
break;
}
if (i < j)
swap(a[i], a[j]);
} while (i < j);
a[l] = a[j];
a[j] = x;
qsort(a, l, j - 1);
qsort(a, j + 1, r);
}
int main()
{
int n, a[100];
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
qsort(a, 1, n);
for (int i = 1; i <= n; i++)
cout << a[i] << " ";

题目发来可以吗?

什么意思呀

#include <stdio.h> 
#include <stdlib.h>
int compar(void const* p1, void const* p2)
{
    return (*(int*)p1 - *(int*)p2) * (-1); //前两个实际是整形向加减    
}
void show(int a[],int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("%d ", a[i]);
    }
}
int main()
{
    int a[] = { 24,58,62,38,2,74,89 };
    int length = sizeof(a) / sizeof(int);
    qsort(a, length, sizeof(a[0]), compar);
    show(a, length);
}