图片.png
#include <stdio.h>
#include <string>
#include <vector>
#include <iostream>
using namespace std;
struct Student
{
int num;
string name;
string sex;
int age;
};
int main()
{
int m,n,find;
cin >> m;
vector<Student> vs;
for(int i=0;i<m;i++)//这个题有个隐含条件,如果学号相同应该是把之前的学号的学生覆盖掉
{
Student stu;
cin >> n;
int flag;
for(int j=0;j<n;j++)
{
flag = 0;
cin >> stu.num >> stu.name >> stu.sex >> stu.age;
for(int i=0;i<vs.size();i++)//如果学号相同,那么就替换他
{
if(vs[i].num == stu.num)
{
vs[i].name = stu.name;
vs[i].age = stu.age;
vs[i].sex = stu.sex;
flag = 1;
}
}
if(flag==0)
vs.push_back(stu);
}
cin >> find;//这是查询的学号,不是输入的顺序
for(int i=0;i<vs.size();i++)
{
if(vs[i].num == find){
cout << vs[i].num <<" "<<vs[i].name<<" "<<vs[i].sex<<" "<<vs[i].age <<endl;
}
}
}
return 0;
}
网友评论