HDU1862 - EXCELのソート

トピックリンク:http://acm.hdu.edu.cn/showproblem.php?pid=1862

問題解決のアイデア:ソート構造

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
構造体の学生{
     int型がありません。
    文字列の名前。
    int型グレード; 
} STU [ 100005 ]。
ブールCMP1(学生S1、S2学生){
     リターン s1.no < s2.no。
} 
ブールCMP2(学生S1、学生S2){
     場合(s1.name < s2.name){
         戻り 
    } そう であれば(s1.name == s2.name){
         リターン s1.no < s2.no。
    } 
    リターン ; 
} 
ブールCMP3(学生S1、学生S2){
     場合(s1.grade < s2.grade){
         戻り 
    } そう であれば(s1.grade == s2.grade){
         リターン s1.no < s2.no。
    } 
    を返す 
} 
int型のmain(){
     int型 N、C、CAS = 1 一方、(CIN >> N >> C、N){
         ためINT iは= 0 ; I <N I ++ ){ 
            CIN>> STU [I] .NO >> STU [I] .nameの>> STU [I] .grade。
        } 
        もし(C == 1 ){ 
            ソート(STU、STU + N、CMP1)。
        } そう なら(C == 2 ){ 
            ソート(STU、STU + N、CMP2)。
        } そう なら(C == 3 ){ 
            ソート(STU、STU + N、CMP3)。
        } 
        のprintf(" ケース%のD:\ n "、CAS ++ )。
        以下のためにINT iが= 0、I <N; I ++){ 
            のprintf(" %S%D%06D \ N- " 、STU [I] .NO、STU [I] .name.c_str()、STU [I] .grade);
             // .c_str()に変換する文字列チャーに[] 
        } 
    } 
    戻り 0 ; 
}

おすすめ

転載: www.cnblogs.com/oeong/p/12108173.html