运用C语言解答,最好有注释

Sid有一只兔子叫Bunny。Bunny有n个萝卜,每个萝卜高h_i。Sid想知道第m高的萝卜有多高。

Input
第一行一个组数T
每组数据第一行两个整数n, m。1 <= m <= n <= 100
每组数据第二行有n个整数h_1, h_2, ~, h_n。1 <= h_i <= 1000000000

Output
每组数据输出一个整数表示第m高的萝卜高度。

SampleInput
1
2 1
1 2
SampleOutput
2

简单的排序,从大到小排序,输出第m高的数。
代码如下:

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1000;
int n,m,T,a[maxn]; 

//bool cmp(int x,int y){
//    return x>y;
//}

void quickSort(int left, int right){
    if(left >= right) //递归边界条件
        return;
    int i, j, tmp;
    i = left, j = right;
    tmp = a[left];  //取最左边的数为基准数
    while (i < j){
        while (a[j] <= tmp && i < j)
            j--;
        while (a[i] >= tmp && i < j)
            i++;
        if(i < j){
            swap(a[i],a[j]);//如果前一个数比后一个数小,交换两数 
        }
    }
    //基准数归位
    a[left] = a[i];
    a[i] = tmp;
    quickSort(left, i - 1);//递归左边
    quickSort(i + 1, right);//递归右边
}

int main(){
    cin>>T;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    
    //sort(a+1,a+n+1,cmp); STL库,与前面cmp函数一起用。 
    //表示对a数组从大到小进行排序。(简便) 
    
    quickSort(0,n);
    cout<<a[m];
}


此处用到快速排序,也提及sort。当然也可以用其他的排序算法。