大一C语言求助,第一张是题目,第二张是答案的最后一部分,也就是输入年份的一部分,为什么要这么输入年
大一C语言求助,第一张是题目,第二张是答案的最后一部分,也就是输入年份的一部分,为什么要这么输入年份,那个注意是什么意思啊,不明白啊...
大一C语言求助,第一张是题目,第二张是答案的最后一部分,也就是输入年份的一部分,为什么要这么输入年份,那个注意是什么意思啊,不明白啊
展开
展开全部
可以在"%"和字母之间插进数字表示最大场宽。
例如: %3d 表示输出3位整型数, 不够3位右对齐。
加点号,左边不足的位会补零
%.3d
例如: %3d 表示输出3位整型数, 不够3位右对齐。
加点号,左边不足的位会补零
%.3d
更多追问追答
追答
/* process flags */
flags = 0;
repeat:
++fmt; /* this also skips first '%' */
switch (*fmt) {
case '-':
flags |= LEFT;
goto repeat;
case '+':
flags |= PLUS;
goto repeat;
case ' ':
flags |= SPACE;
goto repeat;
case '#':
flags |= SPECIAL;
goto repeat;
case '0':
flags |= ZEROPAD;
goto repeat;
}
/* get the precision */
precision = -1;
if (*fmt == '.') {
++fmt;
if (isdigit(*fmt))
precision = skip_atoi(&fmt);
else if (*fmt == '*') {
++fmt;
/* it's the next argument */
precision = va_arg(args, int);
}
if (precision < 0)
precision = 0;
}
//...
//i=1, pre=5,tmp=5
while (i < precision--) *str++ = '0';
while (i-- > 0) *str++ = tmp[i];
追问
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这答案 还有注释是错的 %02d 才表示不足2位补0的,而%.2d表示保留两位小数
追问
那为什么不能直接用%d呢
追答
答案已经举例了,如果年是5,20%d输出是205,20%02d输出是2005,5与05的差别
题目上想要的是2005而不是205所以不直接用%d
%0nd(n为正整数)表示输出的数字不足n时,在数字前面补0使最终显示的结果为n位
再如%04d,要输出的值是13,则最终输出的就是 0013
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询