• 【NYOJ】[60]谁获得了最高奖学金


    这里写图片描述
    这里写图片描述

    使用的结构体储存数据
    然后直接根据条件来判断

    #include<stdio.h>
    struct per {
        char name[22];
        int q1,q2;
        char flag1,flag2;
        int n,sum;
    } stu[120];
    int main() {
        int T;
        scanf("%d",&T);
        while(T--) {
            int X;
            scanf("%d",&X);
            int maxi=0,sum=0;
            for(int i=0; i<X; i++) {
                scanf("%s %d %d %c %c %d",&stu[i].name,&stu[i].q1,&stu[i].q2,&stu[i].flag1,&stu[i].flag2,&stu[i].n);
                stu[i].sum=0;
                if(stu[i].q1>80&&stu[i].n>0)
                    stu[i].sum+=8000;
                if(stu[i].q1>85&&stu[i].q2>80)
                    stu[i].sum+=4000;
                if(stu[i].q1>90)
                    stu[i].sum+=2000;
                if(stu[i].q1>85&&stu[i].flag2=='Y')
                    stu[i].sum+=1000;
                if(stu[i].q2>80&&stu[i].flag1=='Y')
                    stu[i].sum+=850;
                sum+=stu[i].sum;
                if(stu[i].sum>stu[maxi].sum)
                    maxi=i;
            }
            printf("%s
    %d
    %d
    ",stu[maxi].name,stu[maxi].sum,sum);
        }
        return 0;
    }

    标程直接进行的判断
    -.-感觉并没有我写的清晰

    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<numeric>
    using namespace std;
    int calc(int qm,int py,bool gb,bool xb,bool lw) {
        int all=0;
        if(qm>80 && lw) all+=8000;
        if(qm>85&& py>80) all+=4000;
        if(qm>90) all+=2000;
        if(xb&&qm>85) all+=1000;
        if(gb&&py>80) all+=850;
        return all;
    }
    
    int main() {
        int n;
        cin>>n;
        while(n--) {
            int m;
            cin>>m;
            int max_num=0,all=0;
            string max_stu;
            while(m--) {
                int qm,py,lw;
                string xm,gbs,xbs;
                cin>>xm>>qm>>py>>gbs>>xbs>>lw;
                bool gb=gbs=="Y",xb=xbs=="Y";
                int num=calc(qm,py,gb,xb,lw>0);
                all+=num;
                if(num>max_num) {
                    max_num=num;
                    max_stu=xm;
                }
            }
            cout<<max_stu<<endl<<max_num<<endl<<all<<endl;
        }
    }

    题目地址:【NYOJ】[60]谁获得了最高奖学金

  • 相关阅读:
    vue生命周期简介和钩子函数
    vue.js 笔记
    vue-cli安装以及搭建vue项目详细步骤
    nodejs 报错
    线程池 一 ThreadPoolExecutor
    JUC 一 线程池
    线程八锁
    JUC 一 ReentrantReadWriteLock
    JUC 一 ReentrantLock 可重入锁
    JUC 一 CountDownLatch(闭锁)
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569883.html
Copyright © 2020-2023  润新知