哪位帮忙解答一下我的疑惑

C语言的初学者遇到一个程序#include<stdio.h>main(){inta=201,b=012;printf("%2d,%2d\n",a,b};}该程序的运行结果... C语言的初学者遇到一个程序
#include<stdio.h>
main()
{ int a=201,b=012;
printf("%2d,%2d\n",a,b};
}

该程序的运行结果是 201,10
我不太明白为什么输出的是这样的结果 麻烦给解答一下

输出语句里的2应该是表示什么 为什么好象两个2的功能不一样?谢谢啦!
展开
 我来答
liu3035
2007-09-10 · 超过36用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:121万
展开全部
首先,012是八进制数,因此输出时换算为十进制,就是10了

输入语句中的2表示当输出的数的长度小于2,则左补空格,使输出长度为2,当输出的数的长度大于2时,则正常输出。

你把2改为3或大于3的数,你看看输出就明白了
WXD110114dccd8
2007-09-10 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.6万
采纳率:43%
帮助的人:7809万
展开全部
以0开头的表示八进制,

所以b=012,也就是八进制数12,换算为十进制是10,

%d表示十进制整数格式,中间的2表示输出宽度,如果数据宽度超出2则以实际宽度为准。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不曾有刀
2007-09-10
知道答主
回答量:34
采纳率:0%
帮助的人:24.9万
展开全部
a=201,b=012

说明a是十进制的,b是八进制的(b=012,0表示它为八进制)。
所以printf("%2d,%2d\n",a,b)的结果应该是201,10。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式