zoukankan      html  css  js  c++  java
  • PAT 1036 Boys vs Girls (25分) 比大小而已

    题目

    This time you are asked to tell the difference between the lowest grade of all the male students and the highest grade of all the female students.

    Input Specification:
    Each input file contains one test case. Each case contains a positive integer N, followed by N lines of student information. Each line contains a student's name, gender, ID and grade, separated by a space, where name and ID are strings of no more than 10 characters with no space, gender is either F (female) or M (male), and grade is an integer between 0 and 100. It is guaranteed that all the grades are distinct.

    Output Specification:
    For each test case, output in 3 lines. The first line gives the name and ID of the female student with the highest grade, and the second line gives that of the male student with the lowest grade. The third line gives the difference gradeF − grade​M . If one such kind of student is missing, output Absent in the corresponding line, and output NA in the third line instead.

    Sample Input 1:

    3
    Joe M Math990112 89
    Mike M CS991301 100
    Mary F EE990830 95
    

    Sample Output 1:

    Mary EE990830
    Joe Math990112
    6
    

    Sample Input 2:

    1
    Jean M AA980920 60
    

    Sample Output 2:

    Absent
    Jean AA980920
    NA
    

    题目解读

    给出 N 个学生信息,名字、性别(M/F)、ID、分数,找到女生中分数最高的那个人,输出她的 名字 ID,如果不存在就输出 Absent;找到男生中分数最低的那个,输出他的名字 ID,如果不存在就输出 Absent;如果女生最高分和男生最低分都存在就输出 二者之差(女生最高分-男生最低分),如果任何一个不存在就输出 NA

    思路分析

    不知道这个题目为什么会有25分,感觉就是比比大小。

    • 四个变量分别保存女生最低分(初始化为-1)、这个女生(name ID)、男生最低分(初始化为101)、这个男生(name ID),每次读入一个学生信息,如果是女生就去比较更新女生最高分和对应的女生,否则就去比较更新男生最低分和对应的男生。
    • 如果女生最高分是-1,就输出 Absent,否则输出这个最高分女生的name ID
    • 如果男生最低分是101,就输出 Absent,否则输出这个最低分男生的name ID
    • 如果二者都存在就输出最高分-最低分,否则输出 NA

    代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        // 找女生最高分和男生最低分
        string female, male;
        int femalegrade = -1, malegrade = 101;
        cin >> n;
        while (n-- > 0) {
            string name, sex, id;
            int grade;
            cin >> name >> sex >> id >> grade;
            // 是女生
            if (sex == "F") {
                // 找女生最高分
                if (grade > femalegrade) {
                    femalegrade = grade;
                    female = name + " " + id;
                }
            // 找男生最低分
            } else if (grade < malegrade) {
                malegrade = grade;
                male = name + " " + id;
            }
        }
        // 输出女生最高分,不存在输出 Absent
        if (femalegrade == -1) cout << "Absent" << endl;
        else cout << female << endl;
        // 输出男生最低分,不存在输出 Absent
        if (malegrade == 101) cout << "Absent" << endl;
        else cout << male << endl;
        // 输出二者之差,如果有一个不存在输出 NA
        if (femalegrade != -1 && malegrade != 101) cout << femalegrade - malegrade;
        else cout << "NA";
    
        return 0;
    }
    
  • 相关阅读:
    【Java】通用版URLConnection 带cookie下载PDF等资源文件
    【机器学习】粗糙集(Rough Set Approach)
    【机器学习】随机森林(Random Forest)
    【Python】微博自动抢红包
    sublime text3
    【神经网络】BP反向传播神经网络
    【MLP】多层感知机网络
    【Bayesian】贝叶斯决策方法(Bayesian Decision Method)
    postman常用功能汇总(基础必备)
    apache在linux下安装
  • 原文地址:https://www.cnblogs.com/codervivi/p/13032099.html
Copyright © 2011-2022 走看看