Menu
CoddyTech

回顾:排行榜

本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 32 课,共 56 课。

challenge icon

挑战

中等

你正在制作排行榜。读取一行输入:以逗号分隔的 name:score 条目列表。某些条目的分数不是整数,应跳过这些条目(使用 compactMap)。

按分数降序打印排名前三的玩家,每行一位,格式如下:

<rank>. <name> - <score>

排名从 1 开始。分数相同时,按姓名字母顺序排列。如果有效条目少于 3 个,就全部打印。

排行榜之后,打印 Avg: <n>,其中包含所有有效分数的整数平均值(向零截断,不保留小数)。没有有效条目时,打印 Avg: 0。

对于输入 alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99,输出为:

1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86

亲手试试

let entries = readLine()!.components(separatedBy: ",")

// TODO:用 compactMap 转换为 (name, score);按 score 降序排序,score 相同时按 name 排序;
// 输出前 3 名;然后输出所有有效 score 的平均值

逻辑与流程中的所有课

自己练习: Swift 在线编辑器