演算法學習之路|互評成績計算
在浙大的計算機專業課中,經常有互評分組報告這個環節。一個組上臺介紹自己的工作,其他組在臺下為其表現評分。最後這個組的互評成績是這樣計算的:所有其他組的評分中,去掉一個最高分和一個最低分,剩下的分數取平均分記為 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
33
41
31
37
39
解題思路:
1.將老師的成績單獨提出來,在將後面的資料去掉不符合範圍內的。
2.去掉屬於範圍內的最大最小值。
3.四捨五入即原本的值+0.5,然後直接int()強轉即可。
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int peo,marks;
cin>>peo>>marks;
int techer;
int tmp;
vector<int> stu;
double sum=0;
for(int i=0;i<peo;i++){
cin>>techer;
for(int j=0;j<peo-1;j++){
cin>>tmp;
if(tmp>=0&&tmp<=marks)
stu.push_back(tmp);
}
sort(stu.begin(), stu.end());
int count=0;
for(int i=1;i<stu.size()-1;i++){
count++;
sum+=stu[i];
}
printf("%d
",int((sum/count+techer)/2+0.5));
sum=0;
stu.clear();
}
}
相關文章
- PAT乙級比賽-互評成績計算
- PAT-B 1077 互評成績計算【模擬】
- PAT1077互評成績計算(java實現)Java
- SparkSQL練習:對學生選課成績進行分析計算SparkSQL
- 【shell 】 使用 shell 計算成績
- 計算機從業者的技術成長學習之路計算機
- 演算法學習之路|字元統計演算法字元
- 演算法學習之路|科學計數法演算法
- 【機器學習PAI實踐八】用機器學習演算法評估學生考試成績機器學習AI演算法
- 21.C++實現計算八個學生的平均成績C++
- 演算法學習之路|個位數統計演算法
- 演算法學習之路|划拳演算法
- 計算機組成原理學習 Part 2計算機
- 演算法學習之路|A除以B演算法
- 演算法學習之路|列印排名演算法
- 演算法學習之路|方格分割演算法
- 演算法學習之路|朋友數演算法
- 演算法學習之路|SpellItRight演算法
- 演算法學習之路|歐幾里得遊戲演算法遊戲
- 演算法學習之路|月餅演算法
- 演算法學習之路|PATRanking演算法
- 演算法學習之路|列印沙漏演算法
- 演算法學習之路|快速排序演算法排序
- 演算法學習之路|結繩演算法
- 演算法學習之路|數零壹演算法
- 計算機組成原理學習 筆記一計算機筆記
- 演算法學習之路|開學寄語演算法
- 作為雲端計算的互動設計師需要學習哪些?
- java學習的網站,成長之路Java網站
- 演算法學習之路|說反話演算法
- 演算法學習之路|幼兒園買玩具演算法
- 演算法學習之路|小賭怡情演算法
- 演算法學習之路|影像過濾演算法
- 演算法學習之路|日期問題演算法
- 演算法學習之路|賣個萌演算法
- 演算法學習之路|螺旋矩陣演算法矩陣
- 演算法學習之路|選擇題演算法
- 掌握聰明的學習方法,才能獲得好成績