酷代码 AI
菜单

小明和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。 如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排 请问他们合影的效果是什么样的(所有人的身高都不同)? 输入 第一行是人数 n(2≤n≤40,且至少有 1 个男生和 1 个女生)。 后面紧跟 n 行,每行输入一个人的性别(男male或女female)和身高(范围在 [0,2] 内的浮点数,单位米),两个数据之间以空格分隔。 输出 n 个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后 2 位,相邻两个数之间用单个空格隔开。 样例输入 复制 6 male 1.72 male 1.78 female 1.61 male 1.65 female 1.70 female 1.56 样例输出 复制 1.65 1.72 1.78 1.70 1.61 1.56

以下是使用 Python 实现该功能的代码: ```python # 读取人数 n = int(input()) # 初始化男生和女生的身高列表 male_heights = [] female_heights = [] # 循环读取每个人的性别和身高 for _ in range(n): gender, height = input().split() height = float(height) if gender == 'male': male_heights.append(height) else: female_heights.append(height) # 对男生身高列表进行升序排序 male_heights.sort() # 对女生身高列表进行降序排序 female_heights.sort(reverse=True) # 合并男生和女生的身高列表 result = male_heights + female_heights # 格式化输出结果,保留两位小数,并用空格分隔 print(" ".join("{:.2f}".format(height) for height in result)) ``` 代码解释: 1. 读取人数:使用 `input()` 函数读取第一行输入的人数 `n`,并将其转换为整数类型。 2. 初始化列表:创建两个空列表 `male_heights` 和 `female_heights`,分别用于存储男生和女生的身高。 3. 循环读取信息:使用 `for` 循环读取每个人的性别和身高,根据性别将身高添加到相应的列表中。 4. 排序:对 `male_heights` 列表进行升序排序,对 `female_heights` 列表进行降序排序。 5. 合并列表:将排序后的男生和女生身高列表合并为一个列表 `result`。 6. 格式化输出:使用 `join()` 方法将列表中的元素转换为字符串,每个元素保留两位小数,并用空格分隔。最后将结果打印输出。 [2026-02-01 12:51:58 | AI问答 | 411点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多