用试机号排序,直接按照index查找考试号,不需要枚举历遍
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
struct person{
string ID;
int sjsit;
int kssit;
}a;
bool cmp(person a, person b){
return a.sjsit<b.sjsit;
}
int main(){
int n, i, sj;
vector<person> vec;
scanf("%d",&n);
for(i=0; i<n; i++){
cin >> a.ID >> a.sjsit >> a.kssit;
vec.push_back(a);
}
sort(vec.begin(),vec.end(),cmp);
scanf("%d",&n);
for(i=0; i<n; i++){
scanf("%d",&sj);
cout << vec[sj-1].ID;
printf(" %d",vec[sj-1].kssit);
if(i!=n-1) printf("\n");
}
}
转载请注明出处。