当前位置:首页 > 题解目录 > 正文内容

【题解】日期排序

亿万年的星光5年前 (2021-03-26)题解目录5598

【题目描述】

有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。

【输入描述】


【输出描述】

【样例输入】

15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005

【样例输出】

15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005

【题目分析】

  • 仔细看的话日期不符合正常认知,但是不影响做题。

  • 日期按大小排序,从样例可以看出是从小到大排序。

  • 可以用结构体吧年月日全部存起来,然后用前面学过的sort函数进行比较。 sort函数的具体用法参考。

  • 题目中并没有说明有多少组数据,属于不确定长度输入一类。



【参考代码】

#include<bits/stdc++.h>
using namespace std;

//定义结构体函数 
struct data {
    int day; //日 
    int month; // 月 
    int year; //年 
}d[100];
 
bool cmp(struct data  x, struct data y)
{
    if(x.year!=y.year) 
    	return x.year<y.year;  //年份不相同,就先排年份 
    if(x.month!=y.month)
    	return x.month<y.month; //月份不相同,就排月份 
    if(x.day!=y.day) 
    	return x.day<y.day; //日不相同,就排日 
 
}

int main()
{
    int i = 0;
    while(scanf("%d/%d/%d", &d[i].month, &d[i].day, &d[i].year) != EOF)  //读入数据 
    {
        i++;
    }
    sort(d, d + i, cmp); //排序函数 
    for (int j = 0; j < i; j++)
    {
        printf("%02d/%02d/%d\n", d[j].month, d[j].day, d[j].year);
    }
 
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【题解】求车速问题

    【题目描述】一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多...

    【题解】金银岛

    题目描述某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种...

    【题解】变换数组

    【题目描述】输入一个数组 a,包含有 n 个元素 a1,a2,⋯,an。对这个数组进行 m 次变换,每次变换会将数组 a ...

    【题解】发工资

    【题目描述】作为程序猿,最盼望的日子就是每月的9号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小李最近就在考虑一个问题:如果每...

    【题解】装满杯子需要的最短总时长

    【题目描述】现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。给你一个下标从&nb...

    【题解】剔除相关数

    【题目描述】一个数与另一个数如果含有相同数字和个数的字符,则称两数相关。现有一堆乱七八糟的整数,里面可能充满了彼此相关的数,请你用一下手段,自动地将其剔除。【输入描述】每组数据前有一个N(<10...