用c语言实现一个程序代码实现小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位的信息,我们默认小于 22 都是 20 开头的,其他都是 19 开头的。 输入格式: 输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。 输出格式: 在一行中按标准格式 年年年年-月月 将输入的信息整理输出。 输入样例 1: 9808 输出样例 1: 1998-08
时间: 2023-04-04 13:03:22 浏览: 204
可以回答这个问题。以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main()
{
int year, month;
scanf("%2d%2d", &year, &month);
if (year < 22) {
year += 2000;
} else {
year += 1900;
}
printf("%04d-%02d", year, month);
return 0;
}
```
解释一下代码:
首先,我们读入输入的年月信息,使用 `%2d` 格式化字符串读入两个整数,分别表示年份的后两位和月份。
然后,我们判断年份的前两位是 19 还是 20。如果年份的后两位小于 22,我们认为这是 21 世纪的年份,前两位是 20;否则,我们认为这是 20 世纪的年份,前两位是 19。
最后,我们按照题目要求输出整理后的年月信息,使用 `%04d` 格式化字符串输出四位数的年份,使用 `%02d` 格式化字符串输出两位数的月份。
阅读全文