题目描述
输入N个学生的信息,然后进行查询。
输入描述:
输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04
输出描述:
输出M行,每行包括一个对应于查询的学生的信息。 如果没有对应的学生信息,则输出“No Answer!”
示例1
输入
4 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 5 02 03 01 04 03
输出
02 刘唐 男 23 03 张军 男 19 01 李江 男 21 04 王娜 女 19 03 张军 男 19
/* 程序设计思想:声明一个学生信息结构体或类,初始化一个结构体类型的向量。然后读入信息,按要求匹配信息并输出即可。 */ #include<iostream> #include<string> #include<vector> using namespace std; struct stuInfo{ string id; // string name; // string sex; // int age; // }; int main(){ int N=0; while(cin>>N){ vector<stuInfo>stu(N); for(int i=0;i<N;++i){ //读入学生信息 cin>>stu[i].id>>stu[i].name>>stu[i].sex>>stu[i].age; } string ids[10000]; //保存匹配学号 int M=0; cin>>M; for(int i=0;i<M;++i){ //读入匹配学号 cin>>ids[i]; } for(int i=0;i<M;++i){ //进行匹配 bool flag=false; //看有没有对应的学生信息的哨兵 for(int j=0;j<N;++j){ if(ids[i]==stu[j].id){ flag=true; //说明有对应的学生信息 cout<<stu[j].id<<" "<<stu[j].name<<" "<<stu[j].sex<<" "<<stu[j].age<<endl; break; } } if(!flag){ cout<<"No Answer!"<<endl; } } } return 0; }