201903-1 小中大
【题目描述】
老师给了你$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))