首页 > 代码库 > PAT甲题题解-1036. Boys vs Girls (25)-找最大最小,大水题

PAT甲题题解-1036. Boys vs Girls (25)-找最大最小,大水题

题意:给出n个人的姓名、性别、ID、分数,让你找出其中哪个妹纸分数最高、哪个汉子分数最低、以及他们的差
如果没有妹纸或者汉子,则对应输出Absent,差用NA代替。

就是for一遍找最大最小值,水题

技术分享
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <cmath>
#include <vector>
#define INF 0x3f3f3f3f
using namespace std;
struct Node{
    char name[15];
    char ID[15];
    int grade;
}male,female,tmp;
int main()
{
    int n;
    char str[10];
    scanf("%d",&n);
    male.grade=INF;
    female.grade=-1;
    for(int i=0;i<n;i++){
        scanf("%s %s %s %d",tmp.name,str,tmp.ID,&tmp.grade);
        if(str[0]==M){
            if(tmp.grade<male.grade){
                strcpy(male.name,tmp.name);
                strcpy(male.ID,tmp.ID);
                male.grade=tmp.grade;
            }
        }
        else{
            if(tmp.grade>female.grade){
                strcpy(female.name,tmp.name);
                strcpy(female.ID,tmp.ID);
                female.grade=tmp.grade;
            }
        }
    }
    bool absent=false;
    if(female.grade!=-1){
        printf("%s %s\n",female.name,female.ID);
    }
    else{
        absent=true;
        printf("Absent\n");
    }
    if(male.grade!=INF){
        printf("%s %s\n",male.name,male.ID);
    }
    else{
        absent=true;
        printf("Absent\n");
    }
    if(absent){
        printf("NA\n");
    }
    else{
        printf("%d\n",female.grade-male.grade);
    }

    return 0;
}
View Code

 

PAT甲题题解-1036. Boys vs Girls (25)-找最大最小,大水题