永发信息网

求c语言大神。。。

答案:5  悬赏:10  手机版
解决时间 2021-03-03 06:18
求c语言大神。。。
最佳答案
因为%2x读取两位;前面%3d虽说读三位因为26a23中a十进制无法读取;所以a=26;而b为16进制读两位b=a2;转十进制b=10*16+2=162
全部回答
2*16+3=35
b的十进制值是35
这种写法是错误的,scanf输入是无法控制宽度或精度的。
如果你改成scanf("%d %x",&a,&b),这种写法才是正确的,输入26 23后,中间的空格起到分隔作用,执行后a值为十进制26,b值为十进制35。
在使用scanf的时候,应该把%d %x看成一个整体。
因为%d控制十进制输入,输入26,自然输出26,而b值%x控制十六进制输入,十六进制的23是十进制的35。
还有,不是答案的问题,那种写法是错误的,答案没意义。我可以告诉你,你输入26a24,结果还是一样的。
过程是:%3d遇到26a时因十进制没有a,则认为前面输入结束,所以a只接收26;向后由%2x接收16进制2位数字a2,把最后的3留在输入缓冲区中。所以最后b得到16进制数a2。16进制a2就是10进制162。
楼上的回答有点扯了,这里的“%3d”不是精度或宽度的问题,3和后面的2是指截取的字符位数。
之所以最后结果“a=26,b=162”是因为由于读a的时候用的是%d,也就是说规定的是10进制,因此在“26a23”中的a对其来说是非法输入(这里楼主可以进一步学习一下scanf结束接受的条件),所以就算取3位也只能得到26。
于是之后为什么b=162也很好理解了,因为取的是两位16进制数,所以得到的a2转成10进制为162,楼上说输入“26a24”是162原理也是一样的。
希望回答能让楼主满意。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
最终幻想3基沙尔在哪里
苹果微信分身怎么设置
从4开始两个两个地数,数到第6次的数是多少
固铂轮胎 DISCOVERER ATS 235/70R16 106T怎么
我的车有划伤和碰伤能通过年审吗?
廊坊八中是不是一所扶贫学校?
在制作玻片标本的过程中,用哪种工具从洋葱鳞
晚上买了两条金鱼回来,由于没有提前晒好水,
dota幽鬼怎么玩
【橙色代表什么含义】...绿色和紫色各有什么
“无受天损易,无爱人亦难,古来香饵下,触口
我下在看视频,突然唯品会网站就插进来了,怎么
6挡手自一体的车,用手动挡开会比自动挡省油
给婴儿肚脐消毒用什么
屙屎梁在哪里啊,我有事要去这个地方
推荐资讯
仿写句子“最喜欢的大海 远眺着作为心灵鸡汤
容县环顺机械责任公司在什么地方啊,我要过去
生了第一个孩子去还愿的时候还能许愿要第二个
云逸婚纱我想知道这个在什么地方
素描如何用铅笔画出女性的头发发丝
沈阳岐山路新开的钱柜KTV价格表
M16的国际版权失效是怎么回事 还有关于北方军
歼15的各方面性能和苏-33,F18的对比,要全面
校车公司吃国家补贴还收学生车费还欠工人工资
我是移动的卡,如何销号?
撸多了会记忆力下降吗,,假的吧说的这么吓人
(2005)一圆断面风道,直径为250mm,输送10℃
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?