题目描述:
公司最近准备进行拔河比赛,需要在全部员工中进行挑选选拔的规则如下: 1.按照身高优先、体重次优先的方式准备比赛阵容 2.规定参赛的队伍派出10名选手 请实现一个选拔队员的小程序。 输入为一个数组,记录了部门人员的身高、体重信息,如[身高,体重的方式放置;部门全部成员数量为大于10的一个数组要求输出一个size为10的二维数组,
输入描述:
输入为N行员工信息,表示部门报名参加选拔的候选人信息,每行有两个数字,使用空格分隔,表示员工的身高、体重信息 如 181 70 182 70 表示两位候选员工,第一人身高181厘米,体重70公斤;第二人身高182厘米,体重70公斤。
输出描述:要求输出一个10行的已经排序的参赛员工信息数据,每行有两个数字,使用空格分隔,表示员工的身高、体重信息如 182 70 181 70
备注:输入数据范围 成员身高、体重为int数据类型 输入备选成员数量为N,10 < N 100
示例1:
输入 :
181 70
182 70
183 70
184 70
185 70
186 70
180 71
180 72
180 73
180 74
180 75
输出 :
186 70?
185 70?
184 70?
183 70?
182 70?
181 70?
180 75?
180 74?
180 73?
180 72
简单的自定义排序,但是由于题目未限定输入的行数,因此需要自己判定输入结束的条件。
'''
#coding: utf-8
Author: mgc
Date: 2023-12-03 18:13:55
LastEditors: Do not edit
LastEditTime: 2023-12-19 15:06:47
'''
# 创建一个空列表,用于存储用户输入的数字列表
input_lists = []
# 循环接收用户输入,直到输入为空
while True:
# 获取用户输入
input_str = input()
# 如果用户输入不为空,则将输入字符串分割成单词,并将每个单词转换为整数,然后添加到列表中
if input_str != "":
temp = []
for word in input_str.split():
temp.append(int(word))
input_lists.append(temp)
else:
# 如果用户输入为空,则跳出循环
break
# 对列表按照特定规则进行排序
input_lists = sorted(input_lists, key=lambda x: (-x[0], -x[1]), reverse=False)
# 初始化输出字符串
output_str = ""
# 循环输出前10个排序后的列表
for i in range(min(10, len(input_lists))):
temp_str = ""
for num in input_lists[i]:
temp_str += str(num) + " "
output_str += temp_str + "\n"
# 打印输出字符串
print(output_str)