在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的:所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 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
這個題必須先排除錯誤的成績,然後把它放到乙個陣列裡面,這裡我用的是vector,然後有的同學程式寫的沒問題,就是結果不對,在算其他同學平均成績時,肯定丟失精度,然後和老師相加再除以2,可能答案會不一樣。我們先把老師的成績乘上學生的數量,加上去掉高分和低分的成績,然後再除,這樣就不會出錯了。
#include #include #include #include using namespace std;
int main()
sort(v.begin(),v.end());
for(int j=1;jteamscore+=v[j];
int counts=v.size()-2;
sumscore=(teachersc*counts+teamscore)/(2.0*counts);
cout<<(int)(sumscore+0.5)<}
return 0;
}
1077 互評成績計算(20 分)
1077 互評成績計算 20 分 在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的 所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 g 1 老師給這個組的評分記為 g 2 該組得分為 g ...
1077 互評成績計算 (20 分)
在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的 所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 g 1 老師給這個組的評分記為 g 2 該組得分為 g 1 g 2 2,最後結果四捨五入後...
1077 互評成績計算 (20 分)
在浙大的計算機專業課中,經常有互評分組報告這個環節。乙個組上台介紹自己的工作,其他組在台下為其表現評分。最後這個組的互評成績是這樣計算的 所有其他組的評分中,去掉乙個最高分和乙個最低分,剩下的分數取平均分記為 g 1 老師給這個組的評分記為 g 2 該組得分為 g 1 g 2 2,最後結果四捨五入後...