• 算法初步——排序 A1012.The Best Rank(25)


    #include <bits/stdc++.h>
    #include<math.h>
    using namespace std;
    const int MAX_LEN = 2005;
    //const int MAX_D = 31;
    struct student{
        int id;
        int Cgrade;
        int Mgrade;
        int Egrade;
        int Agrade;
    }stu[MAX_LEN];
    int main(){
        int n,m;
        scanf("%d%d",&n,&m);
        int temp[m];
        for(int i =0;i<n;++i){
            scanf("%d",&stu[i].id);
            scanf("%d",&stu[i].Cgrade);
            scanf("%d",&stu[i].Mgrade);
            scanf("%d",&stu[i].Egrade);
            stu[i].Agrade = (stu[i].Cgrade + stu[i].Mgrade + stu[i].Egrade)/3;
        }
        for(int i = 0;i<m;++i){
            scanf("%d",&temp[i]);
        }
        int result = 0;
        int count = 1;
        int digit = 0;
        bool flag = false;
        for(int i =0;i<m;++i){
            for(int j =0;j<n;++j){
                if(temp[i] == stu[j].id){
                    digit = j;
                    flag = true;
                }
            }
            if(flag == false){
                printf("N/A
    ");
                continue;
            }
            else{
                if(stu[digit].Cgrade != stu[digit].Mgrade && stu[digit].Mgrade != stu[digit].Egrade){
                    result = max(stu[digit].Cgrade,max(stu[digit].Egrade,stu[digit].Mgrade));
                    if(result == stu[digit].Cgrade){
                        for(int k=0;k<n;++k){
                            if(stu[k].Cgrade > result){
                                count++;
                            }
                        }
                        printf("%d C
    ",count);
                        count = 1;
                        flag = false;
                        continue;
                    }   
                    if(result == stu[digit].Egrade){
                        for(int k=0;k<n;++k){
                            if(stu[k].Egrade > result){
                                count++;
                            }
                        }
                        printf("%d E
    ",count);
                        count = 1;
                        flag = false;
                        continue;
                    }  
                    if(result == stu[digit].Mgrade){
                        for(int k=0;k<n;++k){
                            if(stu[k].Mgrade > result){
                                count++;
                            }
                        }
                        printf("%d M
    ",count);
                        count = 1;
                        flag = false;
                        continue;
                    }  
                }else{
                    result = stu[digit].Agrade;
                    for(int k=0;k<n;++k){
                        if(stu[k].Agrade > result){
                            count++;
                        }
                    }
                    printf("%d A
    ",count);
                    count = 1;
                    flag = false;
                    continue;
                }
            }
        }
        system("pause");
        return 0;
    } 

  • 相关阅读:
    Git详解之四 服务器上的Git
    Git详解之三 Git分支
    Git详解之二 Git基础
    Git详解之一 Git起步
    Spring Data JPA 梳理
    Spring Data JPA 梳理
    Spring boot 梳理
    Apache和Tomcat 配置负载均衡(mod-proxy方式)-粘性session
    Apache和Tomcat 配置负载均衡(mod-proxy方式)-无session共享、无粘性session
    Spring boot 官网学习笔记
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12152048.html
Copyright © 2020-2023  润新知