zoukankan      html  css  js  c++  java
  • PAT(Advanced Level)A1137. Final Grading

    题意

    要过关要求在线编程的分数>200,而且最后分数要≥60才算过关,最后要按照要求的顺序输出

    思路

    • 可以用一个结构体struct来表示学生的成绩,按照题目的要求读入不同的成绩,按照给定的公式计算总分即可。

    代码

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <unordered_map>
    #include <cmath>
    using namespace std;
    struct stu {
        string id;
        int gp, gmid, gfn, g;
        // 默认没有成绩就是-1分
        stu(): gp(-1), gmid(-1), gfn(-1), g(-1){}
    };
    unordered_map<string, stu> mp;
    int main() {
        int P, M, N;
        scanf("%d %d %d", &P, &M, &N);
        string s;
        for(int i = 0; i < P; i++) {
            cin >> s;
            scanf("%d", &mp[s].gp);
            
        }
        for(int i = 0; i < M; i++) {
            cin >> s;
            scanf("%d", &mp[s].gmid);
        }
        for(int i = 0; i < N; i++) {
            cin >> s;
            scanf("%d", &mp[s].gfn);
        }
        
        //将统计好的信息放入vector里面进行排序
        vector<stu> v;
        for(auto it: mp) {
            if(it.second.gmid > it.second.gfn) {
                it.second.g = round(0.4 * it.second.gmid + 0.6 * it.second.gfn);
            }else {
                it.second.g = it.second.gfn;
            }
            it.second.id = it.first;
            v.emplace_back(it.second);
        }
        sort(v.begin(), v.end(), [&](stu x, stu y) {
            if(x.g == y. g)
                return x.id < y.id;
            else
                return x.g > y.g;
        });
        for(auto it: v) {
            if(it.g < 60 || it.gp < 200)   continue;
            printf("%s %d %d %d %d
    ", it.id.c_str(), it.gp, it.gmid, it.gfn, it.g);
        }
        return 0;
    }
    
    如有转载,请注明出处QAQ
  • 相关阅读:
    linux 下安装web开发环境
    Nginx服务器之 Nginx的基本配置
    Nginx服务器之基础学习
    java反射 之 反射基础
    java IO流 之 其他流
    java IO流 之 字符流
    java IO流 之 字节流
    java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)
    java线程 公平锁 ReentrantLock(boolean fair)
    MarkdownPad 2破解
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/14518147.html
Copyright © 2011-2022 走看看