HM066 箭头访问学生
HM066 箭头访问学生
来源: 第 66 集 结构体-结构体指针
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
结构体指针用来操纵结构体成员。可以按三步来做:先创建结构体变量,再用指针指向它,最后通过指针访问其中的数据。
学生类型包含姓名(字符串)、年龄(整数)、分数(整数)。可以在创建变量时用花括号赋初值。指向它的指针类型必须与变量类型一致:应对 Student 变量取地址,得到 Student *。写成 int *p = &s 会因左右类型不兼容而无法初始化。创建变量和指针时,struct 关键字都可以省略。
若手里是结构体变量本身,用点号访问成员,例如 s.name。若手里是指针,必须用箭头 ->(减号紧接大于号)访问成员,例如 p->name、p->age、p->score。成员再多,通过指针访问时也一律用箭头。使用字符串需要包含 <string>。
读入一名学生,用结构体指针输出三个字段;再读入一份新数据,同样通过箭头改写后再输出。
输入格式
第一行一个不含空格的字符串 \(name\) 和两个整数 \(age\)、\(score\),表示初始学生。
第二行一个不含空格的字符串 \(name_2\) 和两个整数 \(age_2\)、\(score_2\),表示要通过指针写入的新值。
姓名长度不超过 \(20\),年龄在 \(1\) 到 \(120\) 之间,分数在 \(0\) 到 \(100\) 之间。
输出格式
第一行:通过箭头读出的初始姓名、年龄、分数,相邻之间一个空格。
第二行:改写后通过箭头读出的姓名、年龄、分数,相邻之间一个空格。
每行末尾换行。
样例
输入 #1
zhangsan 18 100
lisi 20 90
输出 #1
zhangsan 18 100
lisi 20 90
输入 #2
amy 16 88
bob 17 70
输出 #2
amy 16 88
bob 17 70
说明
指针应写成 Student *pointerA = &oneStudent;,不能用 int * 去指向学生。输出和改写都必须走 pointerA->name 这类箭头,不能只对变量用点号交差。样例 1 先读出 zhangsan \(18\) \(100\),再改成 lisi \(20\) \(90\)。
信息
- ID
- 1065
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者