HM083 人数置零即逻辑清空
HM083 人数置零即逻辑清空
来源: 第 83 集 通讯录管理系统-清空通讯录
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
清空联系人的含义是:用户不再需要本子里的任何人。封装 cleanPerson,用地址传递接收通讯录指针。
不要写循环去把每个人的姓名、电话等字段逐个抹成空串或 \(0\)。那些旧数据即使还躺在数组里也没关系,只要之后访问不到即可。正确做法是**逻辑清空**:把通讯录里记录当前人数的 mSize 置为 \(0\)。之后显示函数只按 mSize 遍历,于是一个人都访问不到,效果就等于整本被清空。人数本来是 \(10\),改成 \(0\) 即可,不必管那 \(10\) 个结构体里还存着什么。
清空是不可逆的。执行前先读入一次确认:\(1\) 表示确实清空,\(2\) 表示放弃。只有确认后才把 mSize 置 \(0\) 并输出 通讯录已清空;放弃则输出 已放弃清空,通讯录保持原样。
显示规则与此前一致:mSize 为 \(0\) 时输出 当前记录为空;否则按现有人数逐行输出,字段之间用制表符,性别用三目运算符写成 男 或 女。
输入格式
第一行一个整数 \(n\)(\(0 \le n \le 100\))。
接下来 \(n\) 行,每行:姓名、性别、年龄、电话、住址,均不含空白。\(1 \le sex \le 2\)。
下一行一个整数 \(q\)(\(1 \le q \le 100\))。
接下来 \(q\) 个操作:
2:显示当前能访问到的全部联系人。6\ c:尝试清空。\(c=1\) 确认,\(c=2\) 放弃。其它 \(c\) 按放弃处理。
输出格式
按操作即时输出显示结果或清空提示。行末换行。
样例
输入 #1
2
张三 1 18 13690000000 海淀
李四 2 20 13681111111 朝阳
5
2
6 2
2
6 1
2
输出 #1
张三 男 18 13690000000 海淀
李四 女 20 13681111111 朝阳
已放弃清空
张三 男 18 13690000000 海淀
李四 女 20 13681111111 朝阳
通讯录已清空
当前记录为空
输入 #2
0
3
2
6 1
2
输出 #2
当前记录为空
通讯录已清空
当前记录为空
说明
必须把 mSize 置 \(0\),不要按容量 \(1000\) 去清空数组。样例 1 先显示两人;放弃清空后再显示仍是两人;确认清空后显示为空。数组里即使还留着张三、李四的旧字段,只要 mSize 为 \(0\),显示函数就不能再访问他们。
信息
- ID
- 1082
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者