其他分享
首页 > 其他分享> > 【PAT (Basic Level) Practice】——【查找元素】1028 人口普查

【PAT (Basic Level) Practice】——【查找元素】1028 人口普查

作者:互联网

文章目录

一【题目难度】

二【题目编号】

三【题目描述】

四【题目示例】

五【解题思路】

六【最终得分】

七【代码实现】

#include<stdio.h>
#include<stdbool.h>

struct Person
{
    char name[10];
    int y,m,d;
}old,young,start,end,temp;

bool less(struct Person a,struct Person b)
{
    if(a.y != b.y)
    {
        return a.y <= b.y;
    }
    else if(a.m != b.m)
    {
        return a.m <= b.m;
    }
    else
    {
        return a.d <= b.d;
    }
}

bool more(struct Person a,struct Person b)
{
    if(a.y != b.y)
    {
        return a.y >= b.y;
    }
    else if(a.m != b.m)
    {
        return a.m >= b.m;
    }
    else
    {
        return a.d >= b.d;
    }
}

void init()
{
    young.y = 1814;
    young.m = 9;
    young.d = 6;
    old.y = 2014;
    old.m = 9;
    old.d = 6;
    start.y = 1814;
    start.m = 9;
    start.d = 6;
    end.y = 2014;
    end.m = 9;
    end.d = 6;
}

int main()
{
    init();
    int n = 0,num = 0;
    scanf("%d",&n);
    for(int i = 0;i<n;i++)
    {
        scanf("%s %d/%d/%d",&temp.name,&temp.y,&temp.m,&temp.d);
        if(less(start,temp) && more(end,temp))
        {
            num++;
            if(more(old,temp))
            {
                old = temp;
            }
            if(less(young,temp))
            {
                young = temp;
            }
        }
    }
    if(num == 0)
    {
        printf("0\n");
    }
    else
    {
        printf("%d %s %s\n",num,old.name,young.name);
    }
    return 0;
}

八【提交结果】

在这里插入图片描述

标签:old,temp,Level,题目,Practice,young,return,num,PAT
来源: https://blog.csdn.net/IronmanJay/article/details/122381457