PAT

1036 Boys vs Girls

2020-04-17  本文已影响0人  胖胖的熊管家

题目

输入:

行数 数字 含义
第一行 N 输入的行数
第二行 name (string) gender ID (string) grade (int ∈ [0,100])
第...行 name (string) gender ID (string) grade (int ∈ [0,100])
第N行 name (string) gender ID (string) grade (int ∈ [0,100])

输出:

行数 输出内容
第一行 成绩最高的女生
第二行 成绩最低的男生
第三行 两人的分数差

如果有一个人没有,那么就输出Absent,并且第三行输出为NA。

Sample Input1
3
Joe M Math990112 89
Mike M CS991301 100
Mary F EE990830 95
Sample Output1
Mary EE990830
Joe Math990112
6
Sample Input2
1
Jean M AA980920 60
Sample Output2
Absent
Jean AA980920
NA

解法

法一:C++
思路:

简单的循环就能搞定

源代码:
#include <iostream>
#include <cstdio>
#include <math.h>
#include<vector>
#include <string.h>
#include <sstream>
using namespace std;

char gender;
string name,id;
int grade;

int main() {
    int n;
    scanf("%d",&n);
    
    int fmax,mmin;
    fmax=0;
    mmin=9999;
    string female,male;
    int grades[2];
    for(int i=0;i<n;i++){
        cin>>name>>gender>>id>>grade;
        if(gender == 'F'){
            if(grade > fmax){
                fmax = grade;
                female = name+" "+id;
            }
        }
        else{
            if(grade < mmin){
                mmin = grade;
                male = name+" "+id;
            }
        }
    }
    if(fmax == 0){
        cout<<"Absent"<<endl;
        cout<<male<<endl;
        cout<<"NA"<<endl;
    }
    else if(mmin == 9999){
        cout<<female<<endl;
        cout<<"Absent"<<endl;
        cout<<"NA"<<endl;
    }
    else{
        cout<<female<<endl;
        cout<<male<<endl;
        cout<<fmax-mmin<<endl;
    }
    
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读