出生日期输入输出

出生日期输入输出

http://www.nowcoder.com/questionTerminal/4a4a9dd1edb6453ba4a0432319200743

分析:

考查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函数的输入输出控制。

全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
评论
25
1
分享
牛客网
牛客企业服务