大一C语言求助,第一张是题目,第二张是答案的最后一部分,也就是输入年份的一部分,为什么要这么输入年

大一C语言求助,第一张是题目,第二张是答案的最后一部分,也就是输入年份的一部分,为什么要这么输入年份,那个注意是什么意思啊,不明白啊... 大一C语言求助,第一张是题目,第二张是答案的最后一部分,也就是输入年份的一部分,为什么要这么输入年份,那个注意是什么意思啊,不明白啊 展开
 我来答
a627088424
2015-10-22 · TA获得超过507个赞
知道答主
回答量:319
采纳率:42%
帮助的人:63.8万
展开全部
可以在"%"和字母之间插进数字表示最大场宽。
例如: %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];
追问
是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcy8760450
2015-10-22 · TA获得超过956个赞
知道小有建树答主
回答量:610
采纳率:64%
帮助的人:392万
展开全部
这答案 还有注释是错的 %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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式