题目描述
输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。
输入格式
输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
输出格式
三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出如果年份不足 4 位数或者月份和天数不足 2 位数,请在前面补 0,需要在1位数前面补 0。
输入输出样例
输入
20130225
输出
year=2013
month=02
day=25
说明/提示
通过scanf 函数的 %m 格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf 函数的 %0 格式控制符,输出数值时指定左面不使用的空位置自动填 0。
思路:
①:首先知道scanf函数的%m 格式控制可以指定输入域宽,printf函数的%md可以使不足m位的int型变量以m位进行右对齐输出,其中高位用空格补齐,如果变量本身超过m位,则保持原样。
②:printf函数的%0md,只是在%md中间多加了0,与%md不同的是,当变量不足m位时,将在前面补足够的数量的0而不是空格。
代码描述:
#include<cstdio>
int main()
{
int year,month,day;
scanf("%4d%2d%2d",&year,&month,&day);
printf("year=%04d\nmonth=%02d\nday=%02d\n",year,month,day);
return 0;
}