Python

【题目描述】

​ 老师给了你$n$个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据。请求统计出这组测量数据中的最大值、中位数以及最小值,并按照从小到大的顺序输出这三个数。

【输入格式】

​ 从标准输入读出数据。

​ 第一行输入一个整数$n$, 在第二行中存在$n$个有序的整数,表示测量的数据,可能为升序或降序排列,可能存在连续多个整数相等,整数与整数之间使用空格隔开。

【输出格式】

​ 输出到标准输出。

​ 包含一行,包括最大值、中位数以及最小值共三个数,并按照从小到大的顺序输出。数据与数据之间使用空格隔开。对于整数请直接输出整数,对于可能出现的分数,请输出四舍五入保留1位小数的结果。

【样例1 输入】

3
-1 2 4

【样例1 输出】

4 2 -1

【样例1 解释】

​ 4为最大值,2为中位数,-1为最小值。

【样例2 输入】

4
-2 -1 3 4

【样例2 输出】

4 1 -2

【样例2 解释】

​ 4为最大值,1为中位数,-2为最小值。

【解题程序】

n = int(input())
lst = list(map(int, input().split()))

#求中位数(无论序列长度是奇数还是偶数)
middle = (lst[n //2] + lst[(n-1)//2]) / 2

if middle == int(middle):
    #中位数为整数就取整
    middle = int(middle)
else:
    middle = format(middle, '.1f')
#此处可手动比较
print(max(lst), middle, min(lst))

评论

This is just a placeholder img.