#sc4test. 机器人竞速排名测试
机器人竞速排名测试
题目描述
机器人竞速赛结束了,列表“成绩”按机器人完成比赛的先后顺序记录了每台机器人的得分,现在需要把成绩从高到低整理成正式排名。
请把排序后的全部成绩保存到列表“排名”中,并找出第 k 名的成绩。相同成绩分别占一个名次,例如排名是 96, 88, 88, 72, 65 时,第 2 名和第 3 名都是 88。
第一组样例的舞台效果如下图:

输入描述
新建列表“成绩”,其中每一项都是 0 到 100 之间的整数。列表长度为 1 到 20。这个列表由系统提供,程序运行过程中不要修改它。
新建变量“k”,满足 1≤k≤列表“成绩”的项目数。
输出描述
新建列表“排名”,保存“成绩”从高到低排序后的结果。
新建变量“第k名”,保存排序后列表“排名”的第 k 项。
编程要求与提示
- 新建一个带两个数字参数的自制积木“交换(i)(j)”,它的功能是交换列表“排名”的第 i 项和第 j 项。
- 先把列表“成绩”的内容逐项复制到“排名”,不要直接修改输入列表。
- 使用选择排序、冒泡排序或插入排序中的一种完成从高到低排序;需要交换两项时调用自制积木“交换(i)(j)”。
- 输入列表和变量由系统在运行时给出,不要使用【询问并等待】积木。
输入样例
成绩 = [72, 96, 65, 88, 88]
k = 3
输出样例
排名 = [96, 88, 88, 72, 65]
第k名 = 88