L1-075 强迫症 (10 分)
小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808
,有的人只写 9808
。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月
格式。对于那些只写了年份后两位的信息,我们默认小于 22
都是 20
开头的,其他都是 19
开头的。
输入格式:
输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。
输出格式:
在一行中按标准格式 年年年年-月月 将输入的信息整理输出。
输入样例 1:
9808
输出样例 1:
1998-08
输入样例 2:
0510
输出样例 2:
2005-10
输入样例 3:
196711
输出样例 3:
1967-11
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char time[8],temp[3];
int shu;
gets(time);
//如果输入四位
if(strlen(time)==4)
{
//取出前两位 放在字符数组temp中
strncpy(temp,time,2);
//将字符数组中的所有字符转换为int,用于下面的比较
shu = atoi(temp);
//如果四位日期的前两位小于22
if(shu<22)
{
printf("20");
for(int i=0;i<strlen(time);i++)
{
if(i==2)
{
printf("-");
}
printf("%c",time[i]);
}
}
//如果四位日期的前两位不小于22
else
{
printf("19");
for(int i=0;i<strlen(time);i++)
{
if(i==2)
{
printf("-");
}
printf("%c",time[i]);
}
}
}
//如果输入六位
else
{
for(int i=0;i<strlen(time);i++)
{
if(i==4)
{
printf("-");
}
printf("%c",time[i]);
}
}
return 0;
}