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

【题解】日期排序

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

【题目描述】

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


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

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

    分享给朋友:

    相关文章

    【NOIP2000】计算器的改良

    【题目描述】NCL 是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手 ZL...

    【题解】区间合并

    【题目描述】给定n个闭区间[ai,bi],其中i=1,2,...n。任意两个相邻或相交或相邻的闭区间可以合并为一个闭区间。例如,[1,2]和[2,3]可以合并为[1,3]。[1,3]和[2,4]可以合...

    【题解】跳格子

    【题目描述】地面上有一排长度为n的格子1-n,每个格子上都有一个数xi,开始时你在位置0,每次你可以向前跳1-2格,然后取走格子上的数,直到跳到位置n+1。取走的数的和就是你的得分,现在你想知道你可能...

    【题解】均分蛋糕

    【题目描述】小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个...

    【题解】山区建小学

    【题目描述】政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0<i<...

    【题解】Best Cow Fences

    【题目描述】    给定一个长度为n的正整数序列A。求一个平均数最大的,长度不小于L的子序列。【输入描述】第一行,n和L;n个正整数,表示A。【输出描述】&nb...