main() {intx ,y; scanf("%2d%2ld",&x,&y); printf("%d\n",x+y) } 输入的1234567 答案是多少

如题所述

答案是46,因为scanf("%2d%2ld",&x,&y)你把x与y变量可接收的长度为2位。所以执行这一句后x=12,y=34.所以结果为46追问

那个限制不是不限制上限的吗 如果超出规定的就按原数来吗 小于限制就补空格 大于就没有限制

追答

因为%ld和%d不一样,%mld,如果整数的位数超出限定输出的位数,还是会输出限定位数的整数

追问

可是 是连到一起输入的 而且是先输入%d的啊

追答

因为执行完%d后已经读出x=12,然后再从12后面的34567读取出长度为2的长整形

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-05
46 (12+34)
第2个回答  2012-03-05
46追问

为什么啊 1234567 怎么能给2个变量输入

追答

%2d的意思就是只录入2位数字。%2ld也是一样的呢。

相似回答