分析:

考查scanf的输入格式控制与输出,可相见本题的提示。
通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。

解法1:

#include <bits/stdc++.h>
using namespace std;

int main() {

    int year = 0, month = 0, day = 0;
    scanf("%4d%2d%2d", &year, &month, &day);
    //使用%0可以填充前导0
    printf("year=%d\n", year);
    printf("month=%02d\n", month);
    printf("date=%02d\n", day);
    return 0;
}

解法2:

直接将生日日期读入到一个整数中,然后再通过求余的方式求月和日。

#include <bits/stdc++.h>
using namespace std;

int main() {

    int birthday = 0, month = 0, day = 0;
    scanf("%d", &birthday);
    //分别对birthday进行求余,然后分别取出年月日
    day = birthday % 100;
    birthday /= 100;
    month = birthday % 100;
    birthday /= 100;
    //输出时要注意补全前导0
    printf("year=%d\n", birthday);
    printf("month=%02d\n", month);
    printf("date=%02d\n", day);
    return 0;
}

总结:

复习scanf printf函数的输入输出控制。