求帮
3038. C快乐比赛的雷雷
雷雷参加主持人比赛,并接受n名老师的评分,评分范围是0到100分之间的整数。
雷雷的得分就是这些老师给分中去掉一个最高分,去掉一个最低分,剩下m一2个老师的平均数(平均数保留2位小数)。请问雷雷得分是多少?
输入描述:
第一行,输入一个正整数n(3<n<20)代表老师的个数。
第二行,输入n个整数,代表每位老师对雷雷的打分。
输出描述:
输出一个数表示雷 雷的得分,结果
留2位小数。
3011204040样例输出
30.00
它制台
import random
n = int(input("输入一个正整数n(3<n<20)代表老师的个数:"))
a = []
for i in range(n):
b = random.randint(0,100)
a.append(b)
a.sort()
print(a)
fenshu = (sum(a)-a-a[-1])/(n-2)
print("雷雷的得分为%.2f" % fenshu)
import random
n = int(input("请输入老师人数:"))
score = []
for i in range(n):
b = int(input("请输入评分:"))
score.append(b)
print("老师给出的分数分别为:"+str(score))
score.sort()
valid_score = sum(score)-score-score[-1]
print("雷雷的有效得分总和是:%d" % valid_score)
average_score = valid_score / (n-2)
print("雷雷的得分是:%.2f" % average_score) print('本程序输入“exit”退出,程序可自动重复运行')
while True:
num_teacher = input('请输入老师的个数:')
if num_teacher.casefold() == "exit": #检测是否输入退出指令
print("游戏结束")
break
if not num_teacher.isdigit():
print("老师个数输入有误,应为正整数")
continue
num_teacher = int(num_teacher)
if not 3<num_teacher<20:
print('老师个数输入有误,应大于3小于20')
continue
print('请输入每位老师的打分,以空格隔开,如98 95:',end='')
num = input()
if num == "exit": #检测是否输入退出指令
print("游戏结束")
break
temp = num.replace(" ","") #删除空格后检测是否全为数字
if not temp.isdigit():
print('分数输入有误,只能为正整数')
continue
num = num.split()
for each in range(len(num)):
num = int(num)
if len(num) != num_teacher: #检测老师个数和分数是否匹配
print('分数输入有误,老师个数和分数个数不匹配')
continue
num.sort()
num.pop()
del num
temp = 0
for each in num:
temp +=each
# temp = temp / (num_teacher - 2)
print('雷雷的得分是:%.2f' % (temp / (num_teacher - 2)))
================
按你要求的第1行、第2行输入,以及输出。加了重复执行以及退出代码,和输入合法性检测
页:
[1]