4248: 平均数、中位数和众数

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

平均数:是指在一组数据中所有数据之和再除以这组数据的个数。

如:“1,2,3,4,5“这组数的平均数为3.00。 (1+2+3+4+5)/ 5 = 3.00

中位数:将一组数据从大到小排序后,位置在最中间的数值。分两种情况:当数据个数为奇数时,中位数为中间的那个数的值;当数据个数为偶数时,中位数为中间的两个数的平均值。

如:“1,3,5,7,9“这组数据有5个数字,中位数为5;

    “1,3,5,7“这组数据有4个数字,中位数为4。

众数:是一组数据中出现次数最多的那个数值。

如:“1,3,5,7,9 ,9“这组数据9出现的次数最多,故众数为9。

输入

以英文逗号分隔的一组整数。

输出

依次输出一组整数的平均数(保留2位小数)、中位数(保留2位小数)和众数。

样例输入 复制

1,3,5,7,9,9

样例输出 复制

5.67 6.00 9

提示

ls=list(map(int,input().split(",")))
average,median,mode=0,0,0
n=len(ls)
average=sum(ls)/n
ls=sorted(ls)
if n%2!=0:
    median=ls[(n+1)//2-1]
else:
    median=(ls[n//2-1]+ls[n//2])/2
maxCnt=1
cnt=1
mode=ls[0]
for i in range(1,n):
    if ls[i]!=ls[i-1]:
        cnt=1
    else:
        cnt+=1
        if cnt>maxCnt:
            maxCnt=cnt
            mode=ls[i]
print('%.2f %.2f %d'%(average,median,mode))