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

【题解】日期排序

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

【题目描述】

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


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

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

分享给朋友:

相关文章

【题解】愤怒的牛

【题目描述】农夫 John 建造了一座很长的畜栏,它包括N(2<=N<100000)个隔间,这些小隔间依次编号为x1,x2,...xn(0<=xi<=1000000000)。但...

数列

数列

【题目描述】有一个分数序列求出这个序列的前n项和,结果保留两位小数。(注意,不用通分,单项相加即可)【输入描述】一个数字,N【输出描述】前N项的和【样例输入】10【样例输出】16.48【题目分析】(1...

【题解】踩方格

【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问...

【题解】线段

【题目描述】在一个数轴上有n条线段,现选取其中k条线段使得这k条线段两两没有重合部分,问最大的k为多少?【输入描述】第一行为一个正整数n,下面n行每行2个数字ai,bi,描述每条线段。【输出描述】输出...

数列分段

题目描述对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。输入格式第1行包含两个正整数N,M,表示了数列A[i...

字符串比较

【题目描述】给出了n(n<=100000)个由数字和字母组成的字符串(长度小于1000),求与给出字符串相同字符串的个数。【输入描述】第一行是一个数n。接下来n行,每行都是一个字符串。接下来一行...