题解 | #出生日期输入输出#
出生日期输入输出
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的作用。
总之本题虽小,但有很大收获。