#include<iostream>
#include<string.h>
#include<string>
using namespace std;
int main()
{
char name[15],id[15];
char gender;
string hid="Absent",lid="Absent",hname,lname;
int grade,hgra=-1,lgra=101;
int n,le=0,he=0;
cin>>n;
for (int i=0;i<n;i++)
{
scanf("%s %c %s %d",&name,&gender,&id,&grade);
if (gender=='M')
{
if(grade<lgra) {lgra=grade;lid=id;lname=name;le=1;}
}
if (gender=='F')
{
if(grade>hgra) {hgra=grade;hid=id;hname=name;he=1;}
}
}
if(he==1)
{
cout<<hname<<" "<<hid<<endl;
}
else
{
cout<<hid<<endl;
}
if(le==1)
{
cout<<lname<<" "<<lid<<endl;
}
else
{
cout<<lid<<endl;
}
if (he==1 && le==1)
{
cout<<hgra-lgra<<endl;
}
else
{
cout<<"NA"<<endl;
}
system("pause");
return 0;
1.scanf中的s其实是char[]不能直接读取string
#include<string.h>
#include<string>
using namespace std;
int main()
{
char name[15],id[15];
char gender;
string hid="Absent",lid="Absent",hname,lname;
int grade,hgra=-1,lgra=101;
int n,le=0,he=0;
cin>>n;
for (int i=0;i<n;i++)
{
scanf("%s %c %s %d",&name,&gender,&id,&grade);
if (gender=='M')
{
if(grade<lgra) {lgra=grade;lid=id;lname=name;le=1;}
}
if (gender=='F')
{
if(grade>hgra) {hgra=grade;hid=id;hname=name;he=1;}
}
}
if(he==1)
{
cout<<hname<<" "<<hid<<endl;
}
else
{
cout<<hid<<endl;
}
if(le==1)
{
cout<<lname<<" "<<lid<<endl;
}
else
{
cout<<lid<<endl;
}
if (he==1 && le==1)
{
cout<<hgra-lgra<<endl;
}
else
{
cout<<"NA"<<endl;
}
system("pause");
return 0;
}