#sc4test. 机器人竞速排名测试

    ID: 9381 传统题 30000ms 512MiB 尝试: 0 已通过: 0 上传者: 标签>编程题函数多参函数排序经典排序综合应用函数·二星多参函数·二星排序·二星经典排序·二星综合应用·二星scratch四级

机器人竞速排名测试

题目描述

机器人竞速赛结束了,列表“成绩”按机器人完成比赛的先后顺序记录了每台机器人的得分,现在需要把成绩从高到低整理成正式排名。

请把排序后的全部成绩保存到列表“排名”中,并找出第 k 名的成绩。相同成绩分别占一个名次,例如排名是 96, 88, 88, 72, 65 时,第 2 名和第 3 名都是 88。

第一组样例的舞台效果如下图:

机器人竞速排名舞台效果

输入描述

新建列表“成绩”,其中每一项都是 0 到 100 之间的整数。列表长度为 1 到 20。这个列表由系统提供,程序运行过程中不要修改它。

新建变量“k”,满足 1≤k≤列表“成绩”的项目数。

输出描述

新建列表“排名”,保存“成绩”从高到低排序后的结果。

新建变量“第k名”,保存排序后列表“排名”的第 k 项。

编程要求与提示

  1. 新建一个带两个数字参数的自制积木“交换(i)(j)”,它的功能是交换列表“排名”的第 i 项和第 j 项。
  2. 先把列表“成绩”的内容逐项复制到“排名”,不要直接修改输入列表。
  3. 使用选择排序、冒泡排序或插入排序中的一种完成从高到低排序;需要交换两项时调用自制积木“交换(i)(j)”。
  4. 输入列表和变量由系统在运行时给出,不要使用【询问并等待】积木。

输入样例

成绩 = [72, 96, 65, 88, 88]

k = 3

输出样例

排名 = [96, 88, 88, 72, 65]

第k名 = 88