PAT1036

#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
2.在输入double类型时需要使用%lf才能正常得到a值,而在输出double类型时可以使用%f,因为在执行printf("%f",a)时编译器将自动把float类型的参数转化为double类型

3.本题用结构体的形式会更清晰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值