乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT乙级BasicLevelPractice 1038
问题分析
如题设所说,这道题目的核心需求是进行统计。
统计意味着考虑数据存储, 由于不是统计某个值(比如最值), 而是要统计之后用于一组给定分数的查询,
所以需要把所有统计数据存储下来.
统计数据存储
如果使用的编程语言有用于计数的键值对类型, 比如Map, 则可以直接用来存储统计数据.
在C语言中, 需要用数组来存储, 由于分数是整数, 所以可以直接用数组索引作为键, 数组元素值作为值.Map
完整描述步骤
- 获取成绩数目, 查询数目
- 初始化计数器
- 对于每一个成绩:
- 在计数器中将对应成绩的计数值+1
- 对于每一个查询:
- 获取计数器中所查询分数的对应值作为查询结果
伪代码描述
- get input of score_amount, query_amount;
- init counter[101] = {0}
- for each score:
counter[score] +=1; - for each query:
print(count[score queried])