题解 | #出生日期输入输出#
出生日期输入输出
https://www.nowcoder.com/practice/4a4a9dd1edb6453ba4a0432319200743
#include <stdio.h>
int main()
{
int y=0;
int m=0;
int d=0;
scanf("%4d%2d%2d",&y,&m,&d);
printf("year=%4d\nmonth=%02d\ndate=%02d\n",y,m,d);
return 0;
}
如提示而言,本题考察%md在输入与输出的应用,以及%0d的作用。
通过本题理解了scanf("%4d%2d%2d",&y,&m,&d);
当我们输入这8位数字后,会根据%md的位数依次识别y,m,d我们所定义的三个变量,因为此时我们的数据限制了宽度,当我们输入时不用输一个变量回车再输下一个变量,会自动识别。
那倘若我们输了超过我们当前位数会怎样?
显然只会识别前八位。
倘若我们中间有一个变量未限制输入宽度,当然就需要敲回车,来进行下一个变量的输入。
%0d则是起到了当输出时补0的作用。
总之本题虽小,但有很大收获。

