当前位置: 代码迷 >> C语言 >> C怪题:无值变有值?
  详细解决方案

C怪题:无值变有值?

热度:201   发布时间:2005-03-08 16:02:00.0
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  

----------------解决方案--------------------------------------------------------
因为 l 是long型,所以这一句要加上一个l,printf("%d %d %f %f\n",i,l,f,d);改为printf("%d %ld %f %f\n",i,l,f,d);不信你再试一下。
----------------解决方案--------------------------------------------------------
好,谢谢
我知道啦!!
----------------解决方案--------------------------------------------------------
以下是引用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呢?
----------------解决方案--------------------------------------------------------
你用的是TURBO C吧,我感觉是编译器的问题。
你试着用VC编译,就不会出现不可理解的结果了。
----------------解决方案--------------------------------------------------------
还有这样的说法啊,没有遇到过,时间看看了,如果真是这样的,那是为什么啊,
----------------解决方案--------------------------------------------------------
  相关解决方案