1077 互評成績計算 (20 分)
在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的:所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 g1;老師給這個組的評分記為 g2。該組得分為 (g1+g2)/2,最後結果四捨五入後保留整數分。本題就要求你寫個程式幫助老師計算每個組的互評成績。
輸入第一行給出兩個正整數 n(> 3)和 m,分別是分組數和滿分,均不超過 100。隨後 n 行,每行給出該組得到的 n 個分數(均保證為整型範圍內的整數),其中第 1 個是老師給出的評分,後面 n−1 個是其他組給的評分。合法的輸入應該是 [0,m] 區間內的整數,若不在合法區間內,則該分數須被忽略。題目保證老師的評分都是合法的,並且每個組至少會有 3 個來自同學的合法評分。
為每個組輸出其最終得分。每個得分佔一行。
6 50
42 49 49 35 38 41
36 51 50 28 -1 30
40 36 41 33 47 49
30 250 -25 27 45 31
48 0 0 50 50 1234
43 41 36 29 42 29
42
3341
3137
39
n,m=input().split()
for i in range(int(n)):
ls = input().split()
ls_stu = ls[1:] #ls_stu列表內的資料為互評的分數
ls_copy = ls_stu.copy() #直接對ls_stu用remove的話會遇到python中的列表的乙個坑點
for j in ls_copy: #以「30 250 -25 27 45 31」這行數字為例,按題目要求應該刪掉250和-25
if int(j)<0 or int(j)> int(m): #但是在實際執行的時候,如果是for j in ls_stu,
ls_stu.remove(j) #其結果並不會刪掉-25,因為刪除250的時候-25會竄到250的位置
#從而導致-25不會被j遍歷到,也就不會被刪掉
ls_stu.remove(max(ls_stu))
if len(ls_stu) != 0: #為什麼remove max的時候沒有加不等於0的判斷呢?其實都一樣
ls_stu.remove(min(ls_stu)) #哪條語句在後面就對哪條判斷。因為如果ls_stu只有1個值
#的話,remove了max以後,如果直接執行remove min會報錯
g_stu = 0 #學生互評的總分
for k in ls_stu:
g_stu += int(k)
g1 = g_stu/len(ls_stu) #按照題意這個地方不用四捨五入吧?
if len(ls_stu) !=0:
out = (g1+ int(ls[0]))/2
if str((g1+ int(ls[0]))/2)[-2]=='.' and str((g1+ int(ls[0]))/2)[-1]=='5':
x = str((g1+ int(ls[0]))/2)[:-2]
y = int(x)+1
print(y) #這裡是乙個粗陋的四捨五入判斷
else:
print('%.f'%out)
else: #這種情況是只有三個評分,第乙個評分是老師,後兩個評分去掉最高最低後就沒了。
g1=0
print(ls[0])
最後乙個測試點一直沒通過,我也不知道是什麼樣的輸入。1070以後的題網上基本沒有拿python做的了。
這道題我只看到 xutiantian1412 的答案。 他的**三個點都過了的。
但是當n=3的時候,程式會出錯。
而我看下來,感覺思路沒有差太多啊
哎難受
1077 互評成績計算
在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的 所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 g 1 老師給這個組的評分記為 g 2 該組得分為 g 1 g 2 2,最後結果四捨五入後...
1077 互評成績計算
題目鏈結 題目不難,關鍵在於四捨五入這一快需要注意,我利用printf的四捨五入錯了,似乎是不能用還是不準確?改了才對 未ac pragma warning disable 4996 include include include include include using namespace st...
1077 互評成績計算
在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的 所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 g 1 老師給這個組的評分記為 g 2 該組得分為 g 1 g 2 2,最後結果四捨五入後...