标题:C怪题:无值变有值?
只看楼主
dongfz
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-3-8
 问题点数:0 回复次数:5 
C怪题:无值变有值?

各位高手,本人有一道c语言的题目向大家请教: main() {double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %d %f %f\n",i,l,f,d); }

本人经过调试,答案是6 6 0.000000 0.000000 我不是那么明白f和d为什么是0.000000,而i和l确有值.? 谢谢!!

搜索更多相关主题的帖子: float c语言 double int main 
2005-03-08 16:02
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
得分:0 
因为 l 是long型,所以这一句要加上一个l,printf("%d %d %f %f\n",i,l,f,d);改为printf("%d %ld %f %f\n",i,l,f,d);不信你再试一下。
2005-03-08 17:13
dongfz
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-3-8
得分:0 
好,谢谢
我知道啦!!

是金子就一定会发亮吗?高手也需要低调!!!!
2005-03-09 15:46
为了c
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-2-2
得分:0 
以下是引用lmr在2005-3-8 17:13:49的发言: 因为 l 是long型,所以这一句要加上一个l,printf("%d %d %f %f\n",i,l,f,d);改为printf("%d %ld %f %f\n",i,l,f,d);不信你再试一下。
试了一下,果然如此!不过还有一事不明白:为什么%ld 会影响后面的f和d呢?

2005-03-09 20:10
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
得分:0 
你用的是TURBO C吧,我感觉是编译器的问题。
你试着用VC编译,就不会出现不可理解的结果了。
2005-03-10 01:12
编程呆子
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-1-6
得分:0 
还有这样的说法啊,没有遇到过,时间看看了,如果真是这样的,那是为什么啊,
2005-03-10 13:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-13000-1-1.html




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

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