题目描述
给定 N 个学生的成绩信息,请你求出女生第一名与男生倒数第一名的分数差距。
输出格式
输出共三行。
第一行输出女生第一名的姓名和ID。
第二行输出男生倒数第一名的姓名和ID。
第三行输出女生第一名的成绩与男生倒数第一名的成绩的差的绝对值。
如果不存在某个性别的学生,则在对应行输出 Absent。
在第三行输出 NA。
样例
输入样例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:
Absent
Jean AA980920
NA
算法1
本题为简单模拟题,按照题目的意思处理即可。
处理思想:设置name,sex,id,score作为读入的变量,再设置boy_name,girl_name,boy_score,girl_socre,分别作为输出的变量,如果读入的性别字符为’F’就处理,女生的姓名,ID,以及成绩。反之,则处理男生的姓名,id,成绩。最后输出时,若女生或者男生姓名为空时输出Absent,否则则输出其相应的姓名和编号。如果俩者都不为空,则输出俩者的成绩差,否则则输出“NA”。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string name,girl_name,boy_name,sex,ID,girl_ID,boy_ID;
int score,boy_score,girl_score,n;
cin>>n;
for(int i=0;i<n;i++)
{ cin>>name>>sex>>ID>>score;
if(sex=="F")
{
if(girl_name.empty() || girl_score<score)
{
girl_name=name;
girl_ID=ID;
girl_score=score;
}
}
else
{
if(boy_name.empty() || boy_score>score)
{
boy_name=name;
boy_ID=ID;
boy_score=score;
}
}
}
if(girl_name.empty())puts("Absent");
else cout<<girl_name<<' '<<girl_ID<<endl;
if(boy_name.empty())puts("Absent");
else cout<<boy_name<<' '<<boy_ID<<endl;
if(girl_name.size() && boy_name.size())
cout<<abs(girl_score-boy_score)<<endl;
else puts("NA");
return 0;
}