HM065 学生名册改写

HM065 学生名册改写

HM065 学生名册改写

来源: 第 65 集 结构体-结构体数组

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

结构体数组就是:数组里的每一个元素都是自定义类型的变量。把多名学生放进同一个数组,是为了方便统一维护和访问。

结构体定义本身并不代表任何一个具体学生,它只是在声明一种类型。真正的学生要靠这个类型去创建变量。学生很多时,再把这些变量放进数组。创建方式和普通数组相同:数据类型、数组名、方括号里的元素个数,等号后面写初值。只要把结构体当成普通数据类型,数组写法就和以前一样。

可以按下面四步来做:

  1. 定义结构体。学生包含三个属性:姓名(字符串)、年龄(整数)、分数(整数)。使用字符串时需要包含 <string>
  2. 创建结构体数组。
  3. 给数组元素赋值。既可以在定义数组的同时用花括号初始化,也可以在之后按下标修改某个元素的字段,例如把下标 \(2\) 的姓名、年龄、分数都改掉。下标从 \(0\) 开始。初始化之后并非不能再改。
  4. 遍历结构体数组。最常用的是 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
通过率
?
上传者