HM065 学生名册改写
HM065 学生名册改写
来源: 第 65 集 结构体-结构体数组
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
结构体数组就是:数组里的每一个元素都是自定义类型的变量。把多名学生放进同一个数组,是为了方便统一维护和访问。
结构体定义本身并不代表任何一个具体学生,它只是在声明一种类型。真正的学生要靠这个类型去创建变量。学生很多时,再把这些变量放进数组。创建方式和普通数组相同:数据类型、数组名、方括号里的元素个数,等号后面写初值。只要把结构体当成普通数据类型,数组写法就和以前一样。
可以按下面四步来做:
- 定义结构体。学生包含三个属性:姓名(字符串)、年龄(整数)、分数(整数)。使用字符串时需要包含
<string>。 - 创建结构体数组。
- 给数组元素赋值。既可以在定义数组的同时用花括号初始化,也可以在之后按下标修改某个元素的字段,例如把下标 \(2\) 的姓名、年龄、分数都改掉。下标从 \(0\) 开始。初始化之后并非不能再改。
- 遍历结构体数组。最常用的是
for循环:下标从 \(0\) 走到元素个数减一,用「数组名[i]+ 点号 + 字段名」访问姓名、年龄和分数。
读入 \(n\) 名学生作为初始名册,再读入若干次按下落改写,最后按顺序输出整本名单。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 100\))。
接下来 \(n\) 行,每行一个不含空格的字符串 \(name\) 和两个整数 \(age\)、\(score\),表示下标 \(0\) 到 \(n-1\) 的初始学生。姓名长度不超过 \(20\),\(1 \le age \le 120\),\(0 \le score \le 100\)。
接下来一行一个整数 \(m\)(\(0 \le m \le 100\)),表示改写次数。
接下来 \(m\) 行,每行一个整数 \(idx\)、一个字符串 \(name\) 和两个整数 \(age\)、\(score\)(\(0 \le idx < n\)),表示把下标 \(idx\) 的学生整份改写。
输出格式
共 \(n\) 行,按下落从 \(0\) 到 \(n-1\) 输出当前名册。每行格式为:姓名、年龄、分数,相邻之间一个空格,行末换行。
样例
输入 #1
3
zhangsan 18 100
lisi 28 99
wangwu 38 66
1
2 zhaoliu 80 60
输出 #1
zhangsan 18 100
lisi 28 99
zhaoliu 80 60
输入 #2
1
amy 16 90
0
输出 #2
amy 16 90
说明
样例 1 先用花括号思想初始化三名学生,再把下标 \(2\)(第三人)从 wangwu 改成 zhaoliu,年龄 \(80\)、分数 \(60\)。必须用结构体数组存储,遍历时用 stuArray[i].name 这类点号访问。\(m=0\) 表示没有后期改写。
信息
- ID
- 1064
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者