A1036 Boys vs Girls 25分
题目描述:

题目大意:
输入一个数N,以下N行每行输入一个学生信息,找到女生成绩最高的人和男生成绩最低的人,最后输出他们的名字、学号和成绩的差值。
思路:
①:连接体信息,使用结构体存储姓名,性别,id和成绩。
②:使用fcot和mcot分别记录女生和男生是否都存在,若存在赋值1,在输出的时候特判cot,若cot等于0,说明不存在男生或者女生,输出Absent。
AC代码:
#include<cstdio>
#include<cmath>
using namespace std;
struct node{
char name[20];
char sex;
char id[20];
int grade;
}temp,f,m;
int main()
{
int n;
f.grade=-1;
m.grade=101;
int fcot=0,mcot=0;
scanf("%d",&n);
while(n--){
scanf("%s %c %s %d",temp.name,&temp.sex,temp.id,&temp.grade);
if(temp.sex=='F'&&temp.grade>f.grade){
fcot=1;
f=temp;
}
if(temp.sex=='M'&&temp.grade<m.grade){
mcot=1;
m=temp;
}
}
if(fcot==0){
printf("Absent\n");
}
else printf("%s %s\n",f.name,f.id);
if(mcot==0){
printf("Absent\n");
}
else printf("%s %s\n",m.name,m.id);
if(fcot==0||mcot==0){
printf("NA\n");
}
else printf("%d\n",(f.grade-m.grade));
return 0;
}