原题地址:牛客网
题目描述:
输入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
分析:
这个要是用SQL写的话就是最基础的题呀,可惜了不能用。
原本想用STL函数来写的,但是忘记了某个函数,于是就用最基本的方法来写了。。好在这题本身难度也不高,所以没有T。
代码:
#include<iostream>
#include<cstring>
#include<set>
#include<map>
using namespace std;
struct st
{
string num;
string name;
string sex;
int age;
}s[10001];
int main()
{
int n;
while(cin>>n)
{
string num;
for(int i=0;i<n;i++)
{
cin>>s[i].num>>s[i].name>>s[i].sex>>s[i].age;
}
int m;
string q;
cin>>m;
for(int i=0;i<m;i++)
{
cin>>q;
int k=0;
for(int i=0;i<n;i++)
{
if(q==s[i].num){
k=1;
cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].sex<<" "<<s[i].age<<endl;
break;
}
}
if(k==0)cout<<"No Answer!"<<endl;
}
}
return 0;
}
2020.4.15