查找
题目描述:
输入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!”
样例输入:
4
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
5
02
02
01
04
03
样例输出:
02 刘唐 男 23
03 张军 男 19
01 李江 男 21
04 王娜 女 19
03 张军 男 19
代码:
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
//对于题给输入样式,可使用结构体数组
struct Students{
char id[10];
char name[100];
char sex[10];
int age;
};
int main(int argc, char** argv) {
int N;
while(scanf("%d",&N)!=EOF){
Students s[N];
for(int i=0;i<N;i++){
scanf("%s%s%s%d",s[i].id,s[i].name,s[i].sex,s[i].age);
}
int M;
scanf("%d",&M);
char ans[M][10];
for(int i=0;i<M;i++){
scanf("%s",ans[i]);
}
int t=M;
while(t!=0){
int flag=0;
for(int i=0;i<M;i++){
if(strcmp(ans[M-t],s[i].id)==0){
printf("%s %s %s %d\n",s[i].id,s[i].name,s[i].sex,s[i].age);
flag++;
break;
}
}
if(flag==0){
printf("No Answer!");
}
t--;
}
}
return 0;
}
bug