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

【题解】日期排序

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

【题目描述】

有一些日期,日期格式为“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);
    }
 
}


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

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

分享给朋友:

相关文章

【题解】最长不下降子序列2

【题目描述】设有由n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)且b(i)≠b(j)(i≠j),若存在i1<i2<i3<…<ie 且有b...

家庭作业

题目描述老师在开学第一天就把所有作业都布置了,每个作业如果在规定的时间内交上来的话才有学分。每个作业的截止日期和学分可能是不同的。例如如果一个作业学分为10,要求在6天内交,那么要想拿到这10学分,就...

【题解】相关数

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

连词成句

【题目描述】有一天,毛毛上课的时候遇到了一个难题,老师让同学们把黑板上的单词连成一句话。已知连词的规则是:从待选词中选出正确的单词按照顺序输出,“正确的单词”表示除第一个单词外,其余单词都是小写字母,...

【算法】最短路径

【算法】最短路径

【题目描述】下图表示从城市A到城市H的交通图。从图中可以看出,从城市A到城市H要经过若干个城市。现在找出一条经过城市最少的一条路线。【输入描述】第一行一个整数n,表示几个城市。接下来2~n+1行,表示...

【题解】营救巨轮

【题目描述】一艘远洋巨轮在大海中遇到故障,船长库克立刻发出了求救信号。距离最近的辽宁号收到了讯息,时间就是生命,必须尽快赶到那里。通过侦测,辽宁号获取了一张海洋图。这张图将海洋部分分化成n*n个比较小...