题目描述
输入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>
using namespace std;
struct Student {
string id;
string name;
string sex;
int age;
};
int main() {
// freopen("/home/dong/CLionProjects/untitled/in.txt", "r", stdin);
int N, M;
string q;
Student stus[1010];
cin >> N;
for (int i = 0; i < N; ++i) {
cin >> stus[i].id >> stus[i].name >> stus[i].sex >> stus[i].age;
}
cin >> M;
for (int i = 0; i < M; ++i) {
cin >> q;
int idx = -1;
for (int j = 0; j < N; ++j) {
if (stus[j].id == q) {
idx = j;
break;
}
}
if (idx == -1) {
printf("No Answer!\n");
} else {
printf("%s %s %s %d\n", stus[idx].id.c_str(), stus[idx].name.c_str(), stus[idx].sex.c_str(), stus[idx].age);
}
}
return 0;
}
#include <iostream>
#include <map>
using namespace std;
struct Student {
string id;
string name;
string sex;
int age;
};
int main() {
// freopen("/home/dong/CLionProjects/untitled/in.txt", "r", stdin);
int N, M;
map<string, Student> map1;
string q;
Student stu;
// in
cin >> N;
for (int i = 0; i < N; ++i) {
cin >> stu.id >> stu.name >> stu.sex >> stu.age;
map1[stu.id] = stu;
}
cin >> M;
for (int i = 0; i < M; ++i) {
cin >> q;
if (map1.find(q) == map1.end()) {
printf("No Answer!\n");
} else {
printf("%s %s %s %d\n", map1[q].id.c_str(), map1[q].name.c_str(), map1[q].sex.c_str(), map1[q].age);
}
}
return 0;
}