题目描述
输入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<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string.h>
#include<map>
#include<vector>
using namespace std;
typedef struct{
int index;
string name;
string sex;
int age;
}student;
int main()
{
int N , M; //N是输入学生人数,M查找编号数量
int index , age;
string name;
string sex;
student stu[1000]; //定义学生数组,保存每个学生信息
while(cin >> N){
for(int i = 1 ; i <= N; i++){
cin >> index >> name >> sex >> age;
stu[i].index = index;
stu[i].name = name;
stu[i].sex = sex;
stu[i].age = age;
}
cin >> M;
for(int i = 1 ; i <= M; i++){
cin >> index;
int flag = 0; //标记是否找到学生信息
for(int j = 1; j <= N ; j++){
if(index == stu[j].index){
flag++;
cout << stu[j].index <<" " << stu[j].name <<" " << stu[j].sex <<" " << stu[j].age << endl;
}
}
if(flag == 0){
cout << "No Answer!" << endl;
}
}
}
return 0;
}