已经ac的代码+题中遇到的函数
#include <iostream>
#include <algorithm>
#include <string.h>
#include <memory.h>
using namespace std;
#define maxsize 1000
/** 本题的几个重要函数
一、排序函数sort的使用
sort(num2,num2+r-l+1,compare);
几个参数的意义:1、为数组的起始地址
2、为结束地址其实也就是要排序的个数
3、从大到小还是从小到大,可以没有,没有的话默认从小到大。
有的话,要另外写一个compare函数,见下面。
二、数组复制函数
memcpy(num2,num+l-1,(r-l+1)*sizeof(int));
参数意义:1、目标数组
2、原数组的起始地址
3、数据个数
*
*/
bool compare(int a,int b)
{
return (a>b);
}
int main()
{
//n为序列长度,m为询问个数
//第一到第r个数中,第K大的数是谁
int n,m;
int l,r,k;
int num[maxsize+1];
cin>>n;
int i;
//从一开始
for(i=0;i<n;i++)
cin>>num[i];
//sort(num+1,num+n,compare);
cin>>m;
while(m--)
{
cin>>l;
cin>>r;
cin>>k;
int num2[maxsize+1];
memcpy(num2,num+l-1,(r-l+1)*sizeof(int));
sort(num2,num2+r-l+1,compare);
cout<<num2[k-1];
cout<<endl;
}
return 0;
}