PAT 1036. Boys vs Girls
第三个测试点是没有男生的情况
没有测试点是针对男生比女生分高的情况
题目的意思是要把Absent写在对应的行,女生占第一行,男生占第二行我是以为把唯一的最值输出 = =
#include <iostream> #include <string> using namespace std; struct student { string name; char gender; string id; int grade; }stu[1000]; int main() { int i,j,n,grade,f_temp=-1,m_temp=-1; string name,id; char gender; int f_max=-1,m_min=101; cin>>n; //输入数据 for(i=0;i<n;i++) { cin>>stu[i].name>>stu[i].gender>>stu[i].id>>stu[i].grade; } for(i=0;i<n;i++) { if((stu[i].gender=='F')&&stu[i].grade>=f_max) { f_max=stu[i].grade; f_temp=i; } else if((stu[i].gender=='M')&&stu[i].grade<=m_min) { m_min=stu[i].grade; m_temp=i; } } //第一行女生,第二行男生 if(f_temp==-1)//没有符合条件的女生 { cout<<"Absent"<<endl; cout<<stu[m_temp].name<<' '<<stu[m_temp].id<<endl; cout<<"NA"<<endl; } else if(m_temp==-1)//没有符合条件的男生 { cout<<stu[f_temp].name<<' '<<stu[f_temp].id<<endl; cout<<"Absent"<<endl; cout<<"NA"<<endl; } else if(m_min>f_max) { cout<<"Absent"<<endl; cout<<stu[f_temp].name<<' '<<stu[f_temp].id<<endl; cout<<stu[m_temp].name<<' '<<stu[m_temp].id<<endl; cout<<"NA"<<endl; } else { cout<<stu[f_temp].name<<' '<<stu[f_temp].id<<endl; cout<<stu[m_temp].name<<' '<<stu[m_temp].id<<endl; cout<<f_max-m_min<<endl; } return 0; }
浙公网安备 33010602011771号