#include<bits/stdc++.h>
using namespace std;
const int maxn=1010;
struct stuinfo{//a,b,c为准考证号 试机座位号 考试座位号
string a;
int b;
int c;
}stuinfo[maxn];
int main()
{ int N,M;
cin>>N;
for(int i=1;i<=N;i++){
cin>>stuinfo[i].a;
cin>>stuinfo[i].b;
cin>>stuinfo[i].c;
}
cin>>M;
for(int i=1;i<=M;i++){//若 输入的试机座位号 =stuinfo[].b ,则打印 准考证号 考试座位号
int temp;
cin>>temp;
for(int i=1;i<=N;i++){
if(stuinfo[i].b==temp){
cout<<stuinfo[i].a<<" "<<stuinfo[i].c<<endl;
break;
}
}
}
return 0;
}
注释:这种方法时间复杂度比较大O(M*N),建议使用算法笔记的思路:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1010;
struct stuinfo{
string a;
int c;
}stuinfo[maxn];
int main()
{ int N,M;
string id;
int seat,examseat;
cin>>N;
for(int i=1;i<=N;i++){
cin>>id>>seat>>examseat;
stuinfo[seat].a=id;
stuinfo[seat].c=examseat;
}
cin>>M;
for(int i=1;i<=M;i++){
int temp;
cin>>temp;
cout<<stuinfo[temp].a<<" "<<stuinfo[temp].c<<endl;
}
return 0;
}