PAT_甲级_1036 Boys vs Girls

题目大意:

给出N个同学的信息,输出女生中最高分数获得者的信息与男生中最低分数获得者的信息,并输出它们的差。如果不存在女生或者男生,则在对应获得者信息处输出Absent,同时分数差处输出NA。

算法思路:

使用结构体Student同学的名字,性别,ID和分数,girl保存最高分的女生其分数初始为-1,boy保存最低分的男生其分数初始为101,对于每一次输入的信息,如果是男生,就判断当前输入的分数是否比boy的分数低,如果是,boy=student,如果是女生,判断该输入的分数是否比girl的分数高,如果是,girl=student.在最后输出的时候,对于girl.grade == -1的情况,说明没有相应的女生,boy.grade == 101说明没有相应的男生,对于以上2种情况之一最后都得输出NA

注意点:

1、name和ID的数组长度得开到11以上。

提交结果:

图片.png

AC代码:
#include

using namespace std;

struct Student{
    char name[20];
    char gender;
    char ID[20];
    int grade;
};

int main(){
    int N;
    scanf("%d",&N);
    Student student;
    Student girl;//保存最高分的女生 
    girl.grade = -1;
    Student boy;//保存最低分的男生
    boy.grade = 101; 
    for(int i=0;istudent.grade){
            boy = student;
        }else if(student.gender=='F'&&girl.grade

你可能感兴趣的:(算法-数据结构,c++)