PAT基本1077相互評価スコア計算(20分)

浙江省のコンピュータコース、クロススコア群のレポートは、このリンクがしばしばあります。自分の仕事を紹介するグループステージ、彼らのパフォーマンスのスコアのための聴衆の中に他のグループ。最高と最低点と呼ばれる平均点の残りの部分除去し、他の全ての群のスコア:相互評価スコアのこの最後のグループは、によって算出される  Gを1。;教師評価このグループと呼ばそれは  G 2 グループのスコア  (最終結果は四捨五入整数の除算後も保持。この問題は、ピア評価スコアのグループごとに算出した教師を支援するプログラムを記述する必要があります。

入力フォーマット:

最初の行の入力は、2つの正の整数を与える  N(> 3)及び  Mはそれぞれ、パケットの数うち、以上100。次いで、  N行は、セットの各列が得与えられ  、後教師評価与えられた最初のそのN点(整数の範囲内で保証整数)の  N - 他のスコアに1基。入力が合法であるべき  ではない法的範囲内で、画分は無視されなければならない場合、[範囲の整数。件名教師は評価が正当であることを確認するために、各グループは、クラスメートから、少なくとも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


浮動小数点演算の使用に注意してください、そして最後に丸め
#include <iostreamの> 
する#include <ベクトル> 
の#include <sstream提供> 
の#include <アルゴリズム>
 使用して 名前空間STDを、
ボイド取引(ベクトル< ダブル > V){
     ダブル t_grade = V [ 0 ]。二重の平均値= 0 ; 
    v.erase(v.begin())。
    ソート(v.begin()、v.end()); 
    int型 iは= 1 ; iがv.size()< - 1 ; I ++)は平均+ = V [i]は、
    平均 /=(v.size()- 2 )。
    printf(" %d個の\ nを"、(INT)((t_grade +平均)/ 2 + 0.5 ))。
} 
int型のmain(){
     int型N、M。
    CIN >> N >> M; 
    ベクトル <ベクトル< ダブル >> V;
    文字列F_L; getlineの(CIN、F_L)。
    以下のためにint型私= 0 ; iがNを<; Iは++ ){ 
        ベクトル < ダブル > TMP。
        文字列tmp_str。
        getline(CIN、tmp_str)。
        stringstream SS; 
        SS << tmp_str。
        ダブルtmp_i;
        一方、(SS >> tmp_i){
             場合(tmp_i> = 0 && tmp_i <= M)tmp.push_back(tmp_i)。
        } 
        v.push_back(TMP)。
    } 
    のためにint型 I = 0 ; iがv.sizeを()<; I ++は
        契約(V [I])を、
    システム(一時停止)。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/littlepage/p/11701684.html