当前位置: 代码迷 >> 综合 >> 1353 查找姓名
  详细解决方案

1353 查找姓名

热度:25   发布时间:2023-12-05 17:54:25.0

1353 查找姓

 

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65534/32767 KB(Java/Others)

提交数 : 1574 | 通过数 : 338

题目描述

输入一张学号和姓名对照表,输入学号,输出对应的姓名。Input
输入正整数n,代表有n(n大于0并且小于等于1000)个学生,接下来n行,每一行输入学号(长度小于等于10位,并且学号不会有重复)以及姓名(姓名的字符长度小于等于20),再接下来输入m(m小于等于10并且大于0)代表要查询的次数,依次每行m个输入学号

输入要求

输出要求

 输出相应的姓名(每个姓名各占一行),如果没有输出“No student”

输入样例

 4
106040501 zhangsan
106040502  lisi
106040503 wangwu
106040504 chenliu
2
106040502
106040509

输出样例

Lisi
No student

提示

多组输入输出

代码如下

#include<stdio.h>
#include<string.h>
typedef struct S{char id[100];char name[100];
}stu;
int main()
{int n;while(scanf("%d",&n)!=EOF){stu s[n];for(int i=0;i<n;i++){scanf("%s",&s[i].id);scanf("%s",&s[i].name); }int m;scanf("%d",&m);char a[m][105];for(int i=0;i<m;i++)scanf("%s",a[i]);for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(strcmp(a[i],s[j].id)==0){printf("%s\n",s[j].name);break;}if(j==n-1)printf("No student\n");}}
}return 0;
}