题目描述
输入n个学生的信息,每行包括学号、姓名、性别和年龄,每一个属性使用空格分开。最后再输入一学号,将该学号对应的学生信息输出。
输入
测试数据有多组,第一行为样例数m。对于每个样例,第一行为学生人数n(n不超过20),加下来n行每行4个整数分别表示学号、姓名、性别和年龄,最后一行表示查询的学号。
输出
输出m行,每行表示查询的学生信息,格式参见样例。
样例输入 Copy
1
4
1 李江 男 21
2 刘唐 男 23
3 张军 男 19
4 王娜 女 19
2
样例输出 Copy
2 刘唐 男 23
#include<cstdio>
#include<cstring>
const int maxn=21;
struct Student{
int num;
char name[100];
char sex[20];
int age;
}stu[maxn];
int main(){
int n,T,a;
while(scanf("%d",&n)!=EOF){
while(n--){
scanf("%d",&T);
for(int i=1;i<=T;i++){
scanf("%d%s%s%d",&stu[i].num,stu[i].name,stu[i].sex,&stu[i].age);
}
scanf("%d",&a);
for(int i=1;i<=T;i++){
if(stu[i].num==a){
printf("%d %s %s %d",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);
}
}
}
}
return 0;
}
做完这几道题,我的感悟是字符串数组尽量大些,你永远不知道测试数据中的数据有多长,还有就是输出一定要加换行符\n!