栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【PAT A-1036】Boys vs Girls

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【PAT A-1036】Boys vs Girls

【PAT A-1036】Boys vs Girls 题意概述

求男生的最低成绩和女生的最高成绩之差。

输入输出格式

第一行给出一个正整数 n,表示要读取 n 个学生,接下来的 n 行,每行按姓名 性别 ID 成绩的格式给出一个学生的信息。其中姓名和 ID 为不超过 10 个字符且不包含空格符的字符串。性别为F时表示女生;为M时表示男生。成绩为 [ 0 , 100 ] [0,100] [0,100]之间的整数。

第一行输出拥有最高成绩的女生的姓名和 ID。第二行输出拥有最低成绩的男生的姓名和 ID。第三行输出女生的最高成绩减去男生的最低成绩的结果。如果输入没有男生或女生,则对应行输出Absent,第三行输出NA。

算法设计

可以定义一个 Person 类,包括四个数据成员:姓名 name、性别 gender、id、成绩 grade。读取学生信息的过程不断更新最高成绩女生的信息和最低成绩的男生的信息,最后按要求进行输出即可。

C++代码
#include 
using namespace std;
using gg = long long;
struct Person {
    string name, gender, id;
    gg grade;
    Person(gg g) : grade(g) {}
};
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    Person m(101), fm(-1), temp(0);
    gg ni;
    cin >> ni;
    while (ni--) {
        cin >> temp.name >> temp.gender >> temp.id >> temp.grade;
        if (temp.gender == "M" and temp.grade < m.grade) {
            m = temp;
        } else if (temp.gender == "F" and temp.grade > fm.grade) {
            fm = temp;
        }
    }
    fm.grade == -1 ? (cout << "Absentn") :
                     (cout << fm.name << " " << fm.id << "n");
    m.grade == 101 ? (cout << "Absentn") :
                     (cout << m.name << " " << m.id << "n");
    fm.grade == -1 or m.grade == 101 ? (cout << "NAn") :
                                       (cout << fm.grade - m.grade);
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/993636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号