简洁程序
输入一个正整数n (n>4),再输入n个实数,求出歌手的得分(保留2位小数)。设一歌唱评奖晚会上有n(n>4)个评委为歌手打分.评分规则:每个评委依次打分,再去掉2个最高分和2个最低分,计算余下的分数平均值为歌手的得分.输入格式:
在第一行中输入n
在第二行中输入n个分数
输出格式:
在一行中输出平均分数
输入样例:
在这里给出一组输入。例如:
10
10 10 9 9 9 8 8 8 7 7
输出样例:
在这里给出相应的输出。例如:
aver=8.50
n=int(input())
b=0
a=[]
if n>4:
n1=input().split()
for i in n1:
i=int(i)
a.append(i)
a=sorted(a)
for j in range(1,3):
a.pop(0)
a.pop(-1)
for k in a:
b+=k
c=b/(n-4)
print("aver={:.2f}".format(c))
感觉程序有点麻烦了,能帮忙简化一下吗 本帖最后由 jackz007 于 2022-11-15 18:13 编辑
n = int(input())
d = list(map(int , input() . split()))
d . sort()
ave = sum(d) / len(d)
print('%.2f' % ave) n = int(input())
# 题目中已经说了 n>4,这代表输入的数据一定会 >4,此处就不用判断 n>4 了
a = input().split() # split 函数可以按照某一字符串分割字符串,默认按空格分隔
# 比如 '1 2 3'.split() 的返回值就是 ['1', '2', '3']
a = # 利用列表推导式,将 a 中的字符串转化成整数
a.remove(min(a)); a.remove(min(a)); a.remove(max(a)); a.remove(max(a)) # 去除最大值和最小值
print("aver={:.2f}".format(sum(a) / len(a)))
n=int(input("评委数(至少5人):"))
d=list(map(eval,input("分数:").split()))
if len(d) == n:
d.sort()
average=sum(d)/len(d)
print(f"平均分数为{average:.2f}")
else:
print("评委与分数的数量不符!") jackz007 发表于 2022-11-15 18:04
程序中,变量n未起作用! dragov 发表于 2022-11-15 20:05
程序中,变量n未起作用!
不需要这个 n,纯属多余。 jackz007 发表于 2022-11-15 20:11
不需要这个 n,纯属多余。
哦哦 谢谢各位!{:5_101:}
页:
[1]