#include <iostream>
using namespace std;
int main()
{
int n;
string girl_name, girl_id; // 女生第一名的信息
int girl_score;
string boy_name, boy_id; // 男生第一名的信息
int boy_score;
cin >> n;
for (int i = 0; i < n; i ++ )
{
string name, sex, id;
int score;
cin >> name >> sex >> id >> score; //不包含空格,若包含空格则用getline读入
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 cout << "NA" << endl;
return 0;
}
思路:
- 每次读入直接判断男生女生,再判断是否要更新最高和最低成绩(若为空直接存)
- 男生女生都需要记录三个量:分数,id,姓名
- 判断string变量是否为空
.empty()
- 输出先判断男女生是否存在,输出差值时判断男女生是否都存在(存在输出差值,否则输出NA)