L2 015 互評成績

2021-07-29 01:19:37 字數 1331 閱讀 4632

學生互評作業的簡單規則是這樣定的:每個人的作業會被k個同學評審,得到k個成績。系統需要去掉乙個最高分和乙個最低分,將剩下的分數取平均,就得到這個學生的最後成績。本題就要求你編寫這個互評系統的算分模組。

輸入格式:

輸入第一行給出3個正整數n(3< n <= 100000,學生總數)、k(3<= k <= 10,每份作業的評審數)、m(<= 20,需要輸出的學生數)。隨後n行,每行給出乙份作業得到的k個評審成績(在區間[0, 100]內),其間以空格分隔。

輸出格式:

按非遞減順序輸出最後得分最高的m個成績,保留小數點後3位。分數間有1個空格,行首尾不得有多餘空格。

輸入樣例:

6 5 3

88 90 85 99 60

67 60 80 76 70

90 93 96 99 99

78 65 77 70 72

88 88 88 88 88

55 55 55 55 55

輸出樣例:

87.667 88.000 96.000

解題思路:這題可以用陣列解,每個人的測評最低總分為0分,最高10*100=1000,可以申請乙個1001個空間,下標代表總分數,陣列中存放該分數的人數,從後往前遍歷,因為分數是遞減而題目是遞增所以可以遍歷時存入棧中,然後輸出。

#include

#include

#include

#include

#include

using

namespace

std;

int main(void)

;stack

st;

cin>>n>>k>>m;

for(int i=0;iint k,m=0;int max1=0,min1=100;

for(int j=0;jcin>>k;

if(k>max1) max1=k; //找出最高分

if(k//找出最低分

m=m+k;

}m=m-max1-min1; //除去最高分和最低分

a[m]++; //該分數人數加1

}int m=1000;

while(tif(a[m]!=0)

else

m--;

}for(int i=0;idouble m=st.top();

printf("%.3f%c",m,i==m-1?'\n':' ');

st.pop(); //出棧

}return

0;}

L2 015 互評成績

時間限制 250 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 學生互評作業的簡單規則是這樣定的 每個人的作業會被k個同學評審,得到k個成績。系統需要去掉乙個最高分和乙個最低分,將剩下的分數取平均,就得到這個學生的最後成績。本題就要求你編寫這個互...

L2 015 互評成績

時間限制 250 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越學生互評作業的簡單規則是這樣定的 每個人的作業會被k個同學評審,得到k個成績。系統需要去掉乙個最高分和乙個最低分,將剩下的分數取平均,就得到這個學生的最後成績。本題就要求你編寫這個互評...

L2 015 互評成績

時間限制 250 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 學生互評作業的簡單規則是這樣定的 每個人的作業會被k個同學評審,得到k個成績。系統需要去掉乙個最高分和乙個最低分,將剩下的分數取平均,就得到這個學生的最後成績。本題就要求你編寫這個互...