zoukankan      html  css  js  c++  java
  • T133308 57级返校测试重测-T3-成绩单

    大致题意:

    • 给定n个学生的学号和分数,
    • 求各个分数段的人数,
    • 求把学号排序后的序列,
    • 求满分的人数以及学号。

    基本思路:

    • 虽然看起来很繁琐(?),但就非常非常的简单,直接按题意做就好了。
    • 然后有个坑,这是(color{#FF3030}{字典顺序}),不是(color{#0000FF}{字典序})QAQ。
    • 字典顺序是个什么东东呢?嗯..就是排序不看长度,只看每个字母在字母表上的位置。
    • 然后就和字典序不一样,嗯,然后我一开始就wa了。/kk

    Code:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <stack>
    #include <map>
    #include <set>
    #include <list>
    using namespace std;
    #define R read()
    #define GC getchar()
    #define ll long long
    #define ull unsigned long long
    #define INF 0x7fffffff
    #define LLINF 0x7fffffffffffffff
    ll read(){
        ll s=0,f=1;
        char c=GC;
        while(c<'0'||c>'9'){if(c=='-')f=-f;c=GC;}
        while(c>='0'&&c<='9'){s=s*10+c-'0';c=GC;}
        return s*f;
    }
    struct node{
        string id;
        int s;
    }p[130010];
    int n;
    int book[20],goods;
    string goodBook[130010];
    bool cmp(node x,node y){
        return x.id<y.id;
    }
    bool cmp_str(string x,string y){
        return x<y;
    }
    int main(){
        cin>>n;
        for(int i=1;i<=n;++i){//输入,以及记录各个分数段的人数
            cin>>p[i].id>>p[i].s;
            if(p[i].s>=1&&p[i].s<=9)++book[1];
            else if(p[i].s>=10&&p[i].s<=19)++book[2];
            else if(p[i].s>=20&&p[i].s<=29)++book[3];
            else if(p[i].s>=30&&p[i].s<=39)++book[4];
            else if(p[i].s>=40&&p[i].s<=49)++book[5];
            else if(p[i].s>=50&&p[i].s<=59)++book[6];
            else if(p[i].s>=60&&p[i].s<=69)++book[7];
            else if(p[i].s>=70&&p[i].s<=79)++book[8];
            else if(p[i].s>=80&&p[i].s<=89)++book[9];
            else if(p[i].s>=90&&p[i].s<=99)++book[10];
            else if(p[i].s>=100&&p[i].s<=109)++book[11];
            else if(p[i].s>=110&&p[i].s<=119)++book[12];
            else if(p[i].s>=120&&p[i].s<=129)++book[13];
            else if(p[i].s>=130&&p[i].s<=139)++book[14];
            else if(p[i].s>=140&&p[i].s<=149)++book[15];
            else if(p[i].s==150)goodBook[++goods]=p[i].id;
        }
        printf("1~9 10~19 20~29 30~39 40~49 50~59 60~69 70~79 80~89 90~99 100~109 110~119 120~129 130~139 140~149
    ");
        for(int i=1;i<=15;++i){//输出各个分数段的人数
            printf("%d ",book[i]);
        }
        printf("
    ");
        sort(p+1,p+n+1,cmp);//排序
        for(int i=1;i<=n;++i){
            cout<<p[i].id<<" "<<p[i].s<<"
    ";
        }
        printf("%d
    ",goods);//输出满分人数以及满分的学号
        if(goods==0){
            printf("No
    ");
            return 0;
        }
        sort(goodBook+1,goodBook+goods+1,cmp_str);
        for(int i=1;i<=goods;++i){
            cout<<goodBook[i]<<"
    ";
        }
        return 0;
    }
    
  • 相关阅读:
    PJzhang:CVE-2020-1472微软NetLogon权限提升漏洞~复现
    PJzhang:vulnhub靶机sunset系列SUNSET:DECOY
    PJzhang:vulnhub靶机sunset系列SUNSET:TWILIGHT
    PJzhang:vulnhub靶机sunset系列SUNSET:SUNRISE
    PJzhang:vulnhub靶机sunset系列SUNSET:MIDNIGHT
    PJzhang:vulnhub靶机sunset系列SUNSET:SOLSTICE
    PJzhang:whatweb指纹扫描工具样例
    HTTP状态码解读
    【并发】线程与进程的区别
    MYSQL之性能优化 ----MySQL性能优化必备25条
  • 原文地址:https://www.cnblogs.com/FUXyao/p/12875471.html
Copyright © 2011-2022 走看看