问题 E: 学生查询
时间限制: 1 Sec 内存限制: 32 MB
献花: 128 解决: 68
[献花][花圈][TK题库]
题目描述
输入n个学生的信息,每行包括学号、姓名、性别和年龄,每一个属性使用空格分开。最后再输入一学号,将该学号对应的学生信息输出。
输入
测试数据有多组,第一行为样例数m。对于每个样例,第一行为学生人数n(n不超过20),加下来n行每行4个整数分别表示学号、姓名、性别和年龄,最后一行表示查询的学号。
输出
输出m行,每行表示查询的学生信息,格式参见样例。
样例输入
1
4
1 李江 男 21
2 刘唐 男 23
3 张军 男 19
4 王娜 女 19
2
样例输出
2 刘唐 男 23
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
const int MaxN = 20;
int main()
{
#ifdef _DEBUG
ifstream cin("data.txt");
#endif // _DEBUG
typedef struct Stu
{
string id, name, sex;
int age;
}Stu;
Stu a[MaxN];
string tmp;
int TNum, StuNum;
while (cin >> TNum)
{
for (int k = 0; k < TNum; ++k)
{
cin >> StuNum;
for (int i = 0; i < StuNum; ++i)
{
cin >> a[i].id >> a[i].name >> a[i].sex >> a[i].age;
}
cin >> tmp;
for (int j = 0; j < StuNum; ++j)
{
if (a[j].id == tmp) { cout << a[j].id << " " << a[j].name << " " << a[j].sex << " " << a[j].age << endl; break; }
}
}
}
#ifdef _DEBUG
cin.close();
system("pause");
#endif // _DEBUG
return 0;
}