予備的アルゴリズム - ソートA1012.Theベストランク(25)

 

 

<ビット/ STDC ++ H>の#include 
の#include <math.h>の
 使用 名前空間STDを、
const  int型 MAX_LEN = 2005 ;
// constのint型MAX_D = 31; 
構造体の学生{
     int型のID。
    int型Cgrade;
    int型Mgrade;
    int型Egrade;
    int型Agrade;
}成長[MAX_LEN]。
int型のmain(){
     int型のn、mは、
    scanf関数(" %D%D "、&​​N、&M)。
    INT TEMP [M]。
    以下のためにINT iが= 0 ; I <N; ++ i)が{
        scanf関数(" %のD "、&STU [I] .ID)。
        scanf関数(" %のD "、および[I] .Cgrade STU)。
        scanf関数(" %のD "、および[I] .Mgrade STU)。
        scanf関数(" %のD "、および[I] .Egrade STU)。
        この[] .Agrade =(この[I] + .Cgradeこの[I] + .Mgradeこの[] .Egrade)/ 3 
    }
    int型 iは= 0 ; I <M ++ {i)は
        scanf関数(" %のD "、&TEMP [I])。
    }
    int型の結果= 0 ;
    int型のカウント= 1 ;
    int型の数字= 0 ;
    ブールフラグ= 以下のためにINT iが= 0 ; I <M; ++ I){
         ためINT J = 0 ; nはJ <; ++ J){
             場合(TEMP [I] == STU [J] .ID){ = J;
                フラグ = 
            }
        }
        もし(フラグ== ){
            printf(" N / A \ n " );
            続け;
        }
        他に{
             場合(STU [数字] .Cgrade!= STU [桁] .Mgrade && STU [桁] .Mgrade!= STU [桁] .Egrade){
                結果 = MAX(STU [桁] .Cgrade、MAX(STU [桁] .Egrade、STU [桁] .Mgrade))。
                もし(結果== STU [桁] .Cgrade){
                     ためのint型のk = 0 ; K <N; ++ K){
                         場合(STU [K] .Cgrade> 結果){
                            カウント ++ ;
                        }
                    }
                    printf(" %d個のC \ n " 、カウント)。
                    カウント = 1 ;
                    フラグ = ;
                    続け;
                }   
                もし(結果== STU [桁] .Egrade){
                     ためのint型のk = 0 ; K <N; ++ K){
                         場合(STU [K] .Egrade> 結果){
                            カウント ++ ;
                        }
                    }
                    printf(" %d個のE \ N " 、カウント数)。
                    カウント = 1 ;
                    フラグ = ;
                    続け;
                }  
                もし(結果== STU [桁] .Mgrade){
                     ためのint型のk = 0 ; K <N; ++ K){
                         場合(STU [K] .Mgrade> 結果){
                            カウント ++ ;
                        }
                    }
                    printf(" %dのM \ N " 、カウント数)。
                    カウント = 1 ;
                    フラグ = ;
                    続け;
                }  
            } {
                結果 = STU [桁] .Agrade。
                int型のk = 0 ; K <N; ++ K){
                     場合(STU [K] .Agrade> 結果){
                        カウント ++ ;
                    }
                }
                printf(" %d個のA \ N " 、カウント数)。
                カウント = 1 ;
                フラグ = ;
                続け;
            }
        }
    }
    システム(一時停止)。
    リターン 0 ;
} 

おすすめ

転載: www.cnblogs.com/JasonPeng1/p/12152048.html