zl程序教程

您现在的位置是:首页 >  工具

当前栏目

1036 Boys vs Girls(简单题,顺序查找)

vs 简单 查找 顺序
2023-09-11 14:17:55 时间

目录

题目

测试样例

输入样例1

输出样例1

输入样例2

输出样例2

提交结果截图

带详细注释的源代码


题目

 题目链接:

1036 Boys vs Girlsicon-default.png?t=L892https://pintia.cn/problem-sets/994805342720868352/problems/994805453203030016

测试样例

输入样例1

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

输出样例1

Mary EE990830
Joe Math990112
6

输入样例2

1
Jean M AA980920 60

输出样例2

1
Jean M AA980920 60

提交结果截图

带详细注释的源代码

#include <iostream>
using namespace std;

int main()
{
    int n;//学生信息数
    string name, f_name, m_name, id, f_id, m_id; 
    char gender;
    int grade;
    int f_max = -1, m_min = 101;//既可以作为存在标志,也可以作为数据记录
    cin>>n;
    for(int i = 0; i < n; i++)//顺序查找即可
    {
        cin>>name>>gender>>id>>grade;
        if(gender == 'F' && (f_max == -1 || f_max < grade))//更新女生信息
        {
            f_max = grade;
            f_name = name;
            f_id = id;
        }
        else if(gender == 'M' && (m_min == 101 || m_min > grade))//更新男生信息
        {
            m_min = grade;
            m_name = name;
            m_id = id;
        }
    }
    if(f_max == -1)//不存在女生信息
        cout<<"Absent\n";
    else
        cout<<f_name<<" "<<f_id<<endl;
    if(m_min == 101)//不存在男生信息
        cout<<"Absent\n";
    else 
        cout<<m_name<<" "<<m_id<<endl;
    if(f_max == -1 || m_min == 101)//只要两种信息有其一不存在
        cout<<"NA"<<endl;
    else
        cout<<f_max - m_min<<endl;
    return 0;
}