1の#include <iostreamの> 2の#include <cstdioを> 3の#include <アルゴリズム> 4 使用して 名前空間をSTD。 5 構造体スコア{ 6 INT 章。 7 INT 馬。 8 int型エン; 9 int型W; 10 INT トット。 11 INT K。 12 }。 13 ブールCMP(スコアX、スコアY) 14 { 15 であれば(x.Tot =!y.Tot) 16 リターン x.Tot> y.Tot。 17 もし(!x.Ma = y.Ma) 18 リターン x.Ma> y.Ma。 19 もし(!XW = YW) 20 リターン XW> YW。 21 もし(!x.Ch = y.Ch) 22 リターン x.Ch> y.Ch。 23 もし(!x.En = y.En) 24 リターン XK < YK; 25 } 26スコアM [ 350 ]。 27 INT メイン(){ 28 INT nは、B。 29 のscanf(" %D%D%D "、&N、&、&B); 30 のために(INT iが= 1 ; iが<= N; I ++ ){ 31 のscanf(" %D%D%D%D "、&M [i]は.CH、&M [i]は.Ma、&M [i]は.ENを、&M [i]の.W)。 32 M [i]は.K = I。 33 M [i]は.Tot = M [i]は.Ma + M [i]は.W + M [i]は.CH + M [i]の.EN。 34 } 35 ソート(M + 1、M + N + 1 、CMP)。 36 のために(INT ; I <= B I ++ iは= {) 37 のprintf(" %D%D \ n " 、M [i]は.Tot [I]・K、M)。 38 } 39 リターン 0 ; 40 }
ヒント:この問題でブール値CMPを記述しない場合は、ソート大に小型のため、並べ替えを使用する場合は、エラーが発生します。
次のようにブールCMPとソートソートコードは次のとおりです。
1つの ブールCMP(スコアX、スコアY) 2 { 3 であれば(!x.Tot = y.Tot) 4 戻り x.Tot> y.Tot;}
1つの ソート(M + 1、M + N + 1 、CMP)。 2 ための(INT iが=、iが<= B; I ++ ){ 3 のprintf(" %D%D \ n " 、M [i]は・K、M [i]の.Tot)。 4 }
ヒント:あるブールCMP、ソートに「CMP」を追加する必要性を、使用して、
ソート(M + 1、M + N + 1、CMP)。
ソート<アルゴリズム>呼び出し時に適用されるべきヘッダファイルを#include