PAT甲级1036.

目录

A1036

题目

样例

样例1

输入:

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

输出:

Mary EE990830
Joe Math990112
6

样例2

输入:

1
Jean M AA980920 60

输出:

Absent
Jean AA980920
NA

思路和坑点

  使用两个结构体分别存储男生和女生要求的最低分和最高分个人信息,然后最后按照要求输出,初始化的时候把名字初始化为空字符,这样有利于最后判别是否有该类型的个体,并按照要求输出。

AC代码

#include<bits/stdc++.h>
using namespace std;
typedef struct node{
    string name,id;                        //学生结构体 
    int score;
    node(){
        name="";                        //姓名初始化为空字符,用于最后的判定 
    }    
}Node;
int main(void){
#ifdef ONLINE_JUDGE
#else
    freopen("1.txt","r",stdin);
#endif
    Node m,w;
    m.score=101;w.score=-1;
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        Node temp;
        string tag;
        cin>>temp.name>>tag>>temp.id>>temp.score;    //读入并按照性别记录 
        if(tag=="F"){
            if(temp.score>w.score)
                w=temp;
        }
        else{
            if(temp.score<m.score)
                m=temp;
        }
    }
    if(w.name=="")    puts("Absent");                    //判定输出 
    else cout<<w.name<<' '<<w.id<<'\n';
    if(m.name=="")    puts("Absent");
    else cout<<m.name<<' '<<m.id<<'\n';
    if(w.name==""||m.name=="")    puts("NA");
    else cout<<(w.score-m.score);
    return 0;
}