| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:求解释,谢谢
只看楼主 加入收藏
多余的流星
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2011-5-2
结帖率:69.23%
收藏
已结贴  问题点数:20 回复次数:10 
求解释,谢谢
int a,b;
scanf("%2d%ld",&a,&b);printf("%d",a+b);
输入1234567,结果为15。
为什么,求解释
搜索更多相关主题的帖子: 1234567 
2011-09-14 13:25
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
在scanf的格式化字符串中,%2d表示接受两位十进制数字。同理%1d接受1位十进制数字。结果就是 12 + 3 = 15。
一定要注意区分数字"1"和字母"l",尽量写成大写"L"。

重剑无锋,大巧不工
2011-09-14 13:33
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:3 
scanf的用法比较麻烦,出问题的时候最好有参数表对着看。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-09-14 20:40
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:3 
要不是看答案,还真看不出第二个占位符有数字…………

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-14 20:45
深蓝灬
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-9-14
收藏
得分:3 
  因为你用int 定义的整型变量,整形变量取值范围是-32768—+32767,你输入1234567,自动只截取12345,然后根据你写的格式,为a取两位数12,为b取一位数3,所以a+b=12+3=15
  呃,我也是今天上课才学到的!
2011-09-14 20:45
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
以下是引用深蓝灬在2011-9-14 20:45:36的发言:

  因为你用int 定义的整型变量,整形变量取值范围是-32768—+32767,你输入1234567,自动只截取12345,然后根据你写的格式,为a取两位数12,为b取一位数3,所以a+b=12+3=15
  呃,我也是今天上课才学到的!




你 用的是win-tc或tc.20吧     你的 答案在16位的机子或编译器是对的,但对于32位机子或vc6.0之类32位的编译器是错的,c 标准,规定了整形 的最小取值范围是-32768—+32767,chort 所占空间小于int ,long 所占空间要大于int  long long 大于long


在vc6.0  
chort  int 16位

int   32位

long int  32位
long long int 64位



在tc2.0

chort  int 16位

int   16位

long int  32位

[ 本帖最后由 A13433758072 于 2011-9-15 10:09 编辑 ]

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-15 09:34
黄翔枫
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2011-5-1
收藏
得分:3 
新手帮顶
2011-09-15 09:53
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 6楼 A13433758072
tc2.0还支持 long long ?
tc2.0推出于1988年,而long long类型是C99才增加的。
把最后一行删了,不要瞎说。

重剑无锋,大巧不工
2011-09-15 10:04
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
   哈哈   .错了    我 就怎么觉得哪里不对,就是记不 起

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-15 10:08
姚健
Rank: 1
等 级:新手上路
帖 子:7
专家分:9
注 册:2011-9-5
收藏
得分:3 
因为你定义是整型变量,然而你在输出时定义格式控制符为2个宽度,另一个为长整型,所以输出的为12,和3.
2011-09-15 11:32
快速回复:求解释,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016802 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved