【id:20】【20分】D. 谁是老二(结构体)

博客要求定义结构体存储学生出生日期,在一群学生的出生日期中找出排行第二老的。规定出生日期存储必须用结构体,程序全过程对出生日期的输入、访问、输出都要使用结构,还给出了输入输出的相关要求及样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

定义一个结构体,包含年月日,表示一个学生的出生日期。然后在一群学生的出生日期中找出谁的出生日期排行第二

要求:出生日期的存储必须使用结构体,不能使用其他类型的数据结构。

要求程序全过程对出生日期的输入、访问、输出都必须使用结构。

输入

第一行输入t表示有t个出生日期

每行输入三个整数,分别表示年、月、日

依次输入t个实例

输出

输出排行第二老的出生日期,按照年-月-日的格式输出

样例查看模式

正常显示查看格式

输入样例1 <-复制

输出样例1

输入样例2 <-复制

输出样例2

输入样例3 <-复制

#include<iostream>
using namespace std;
struct birthdays {
    int year, month, day;
};
bool pai(birthdays a, birthdays b)
{
    if (a.year < b.year)
    {
        return  true;
    }
    else if (a.year > b.year)
    {
        return false;
    }
    else
    {
        if (a.month < b.month)
        {
            return true;
        }
        else if (a.month > b.month)
        {
            return false;
        }
        else
        {
            if (a.day < b.day)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}
void swap(birthdays &a, birthdays &b)
{
    int temp;
    temp = a.year;
    a.year = b.year;
    b.year = temp;
    temp = a.month;
    a.month = b.month;
    b.month = temp;
    temp = a.day;
    a.day = b.day;
    b.day = temp;
}
int main()
{
    int t;
    cin >> t;
    birthdays* p = new birthdays[t];//创建一个动态二维数组
    for (int i = 0; i < t; i++)
    {
        cin >> p[i].year;
        cin >> p[i].month;
        cin >> p[i].day;
    }
    //先进行一个排序,然后再找出排第二的数组序号
    int temp = 0;
    for (int i = 0; i < t; i++)
    {
        for (int j = i; j < t; j++)
        {
            if (pai(p[i], p[j]))//p[i]<p[j]小于的情况
            {
                swap(p[i], p[j]);
            }
        }
    }
    cout << p[t-2].year << "-" << p[t-2].month << "-" << p[t-2].day;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值