题意:这一次你被要求说出所有男生中最低分和所有女生中最高分的区别。
输入:每个输入文件包含一个测试用例。每个案例都包含一个正整数N,后跟N行学生信息。每行包含学生的姓名、性别、ID和年级,用空格分隔,其中姓名和ID是不超过10个字符的字符串,不带空格,性别是F(女性)或M(男性),年级是0到100之间的整数。保证所有的等级都是不同的。
输出:对于每个测试用例,输出3行。第一行是最高年级女生的姓名和身份证,第二行是最低年级男生的姓名和身份证。第三行给出了差分等级F-M级。如果缺少此类学生,则在相应行中不输出,而在第三行中输出NA
字符串的简单处理:还是需要注意的,用name做一个额外的绑定。
//输入四个信息,找出男生的最低分和女生最高分
//但是输入有规则,先输出女生最后分,男生最低分
//最后一行给出 女生-男生的分数
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;//输入人数
string gril_name,gril_id;//女生第一名信息
int gril_score;
string boy_name,boy_id;//男生第一名的信息
int boy_score;
while(N--){
string name,sex,id;
int score;
cin>>name>>sex>>id>>score;
if(sex=="F"){
if(gril_name.empty()||gril_score<score){
gril_name=name;
gril_id=id;
gril_score=score;
}
}
else{
if(boy_name.empty()||boy_score>score){
boy_name=name;
boy_id=id;
boy_score=score;
}
}
}
if(gril_name.empty()) cout<<"Absent"<<endl;
else cout<<gril_name<<" "<<gril_id<<endl;
if(boy_name.empty()) cout<<"Absent"<<endl;
else cout<<boy_name<<" "<<boy_id<<endl;
if(boy_name.size()&&gril_name.size()){
cout<<gril_score-boy_score;
}
else{
cout<<"NA";
}
return 0;
}