已经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; }