L1-075 强迫症


💐The Begin💐点点关注,收藏不迷路💐

小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 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 input[7]; // 存储输入的出生年月
    scanf(“%6s”, input); // 从标准输入读取出生年月

    char output[8]; // 存储输出的出生年月
    if (strlen(input) == 4) { // 如果输入是 4 位
        int year;
        sscanf(input, “%4d”, &year); // 将输入的字符串转换为整数
        if (year < 2200) { // 小于 2200,默认为 20 开头
            sprintf(output, “20%.2s-%.2s”, input, input + 2); // 拼接成 20xx-xx 格式
        } else { // 否则为 19 开头
            sprintf(output, “19%.2s-%.2s”, input, input + 2); // 拼接成 19xx-xx 格式
        }
    } else { // 如果输入是 6 位
        sprintf(output, “%.4s-%.2s”, input, input + 4); // 直接拼接成 xxxx-xx 格式
    }
    printf(“%s\n”, output); // 输出整理后的出生年月
    return 0;
}

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐
Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐