1345 神秘的日期
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 1323 | 通过数 : 464
题目描述
考古队在一个神秘的遗迹中发现了一块石碑,经过清洗和复原他们发现上面刻有许多字符,如下: 10000101/18751212/14570326/18880808/ 由于石碑上的内容太多这里只列出了一部分。 这些神秘的字符是什么?经过一番激烈的讨论,大家一致认为这是一串神秘的日期,解开这串日期里蕴藏的秘密也许就能够预知未来。 但这个时候有个难题摆在了大家面前。这串日期是如此之长,又杂乱无章,不利于分析。这个时候他们想到了作为编程高手的你,想让你帮他们把这些日期整理下,以便于分析。
输入要求
输入一行由斜杠分隔的数字,长度不超过100,斜杠将这串数字分割成了若干部分,每个部分长度都为8。
输出要求
提取输入串中的每个日期,按时间顺序排序并输出。 输出有若干行(字符串中有几个日期就输出几行),每行一个日期,日期格式如下: 1987-08-01
输入样例
10000101/18751212/14570326/18880808/20120123/20120216
输出样例
1000-01-01 1457-03-26 1875-12-12 1888-08-08 2012-01-23 2012-02-16
提示
来源
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char s[1000];
gets(s);
int sum=0;
char a[105][105];
int sum1=0,sum2=0;
for(int i=0;i<strlen(s);i++)
{
if(s[i]!='/')
{
a[sum2][sum1]=s[i];
sum1++;
sum++;
}
if(sum==4)
{
sum=0;
a[sum2][sum1]='-';
sum1++;
a[sum2][sum1]=s[i+1];
sum1++;
a[sum2][sum1]=s[i+2];
sum1++;
a[sum2][sum1]='-';
sum1++;
a[sum2][sum1]=s[i+3];
sum1++;
a[sum2][sum1]=s[i+4];
sum1++;
sum2++;
sum1=0;
i=i+4;
}
}
char temp[105];
for(int i=0;i<sum2-1;i++)
{
for(int j=0;j<sum2-1-i;j++)
{
if(strcmp(a[j],a[j+1])>0)
{
strcpy(temp,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],temp);
}
}
}
for(int i=0;i<sum2;i++)
printf("%s\n",a[i]);
return 0;
}