题目
输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。
数据范围:年份满足 1990≤y≤2015 1990≤y≤2015 ,月份满足 1≤m≤12 1≤m≤12 ,日满足 1≤d≤30
输入格式
输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
输出格式
三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。
输入输出样例
输入:20130225
输出:
year=2013
month=02
date=25
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int birth;
scanf("%d", &birth);
int year = birth / 10000;
int month = (birth % 10000) / 100;
int date = birth % 100;
//年
printf("year=%d\n", year);
//月
if (month < 10)
printf("month=0%d\n", month);
else
printf("month=%d\n", month);
//日
if (date >= 10)
printf("date=%d\n", date);
else
printf("date=0%d\n", date);
return 0;
}
总结
通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。