出生日期输入输出
出生日期输入输出
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函数的输入输出控制。