HM081 按姓名查找一人

HM081 按姓名查找一人

HM081 按姓名查找一人

来源: 第 81 集 通讯录管理系统-查找联系人

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

通讯录已经能添加和显示全部联系人。现在要按姓名查看**指定的一个人**。查找和显示不是同一件事:显示会把本子里所有人的信息都打出来;查找必须先指定姓名,只输出那一个人。两个人都在本子里时,查李四就只能出现李四,不能把张三一并带出来。

先封装 isExist:用地址传递接收通讯录指针,再传入要比对的姓名。在 \(0\) 到 mSize-1 之间遍历,姓名相同就返回该人在数组中的下标;全部找完都没有则返回 \(-1\)。\(-1\) 专门表示「不存在」,找到时下标一定不是负数。

再封装 findPerson,同样地址传递。函数里读入要查找的姓名,调用 isExist 得到结果 ret

  • ret != -1,说明此人存在,按下标取出全部五项并显示:姓名、性别、年龄、电话、住址写在同一行,字段之间用水平制表符 \t 分隔,最后一项后换行。性别不要输出 \(1\) 或 \(2\),用三目运算符 sex == 1 ? "男" : "女"(表达式要加括号)。
  • 否则输出一行 查无此人

空通讯录里任何人都不存在,也应走「查无此人」。两种情况都要测到:本子里有这个人,以及本子里没有这个人(包括写错名字、查已经不在的人)。

输入格式

第一行一个整数 \(n\)(\(0 \le n \le 100\)),表示当前人数。

接下来 \(n\) 行,每行:姓名、性别、年龄、电话、住址,均不含空白。\(1 \le sex \le 2\),\(1 \le age \le 150\)。

下一行一个整数 \(q\)(\(1 \le q \le 100\))。

接下来 \(q\) 行,每行一个不含空白的姓名,表示一次查找。

姓名长度不超过 \(20\),电话和住址长度不超过 \(30\)。

输出格式

对每次查找输出一行:找到则按「姓名、性别、年龄、电话、住址」输出,相邻字段之间恰好一个制表符,性别为 ;找不到则输出 查无此人。行末换行。

样例

输入 #1

2
张三 1 18 13690000000 海淀
李四 2 20 13681111111 朝阳
4
张三
李四
张小三
王五

输出 #1

张三  男   18  13690000000 海淀
李四  女   20  13681111111 朝阳
查无此人
查无此人

输入 #2

0
1
张三

输出 #2

查无此人

说明

必须先用 isExist 得到下标或 \(-1\),再用下标去取字段,不要另写一套与检测无关的查找。样例 1 本子里有张三、李四,指定谁就只显示谁;张小三、王五都不在,输出 查无此人。样例 2 当前记录为空,任何人都会查无此人。

信息

ID
1080
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者