广州城建职业学院专升本:c语言程序问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 02:42:47
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
请问d和f为什么是0.000000?
谢谢!
书本上是这个答案,而且我试了也得到这个结果
我是用MYTC的

将: printf("%d,%d,%f,%f\n",i,l,f,d);
改为:printf("%d,%ld,%f,%f\n",i,l,f,d);
输出格式错误导致无法正确显示答案。

六位小数是%f的默认小数位

LZ看错了吧呵呵,我这里可是这么个结果:
6,6,6.000000,6.000000

先问你一下,你用的是TURBO C2.0的编译器吧
应该是和编译器有关的,不用计较这样的问题,实在不行可以去和BORLAND公司联系啊,现在越来越多的程序在用C++了,其中的好多BUG已经取消了,试一下吧
还有最后一个问题,"尽信书不如无书"明白这句话的意思吧
现在好多教材都太不负责了,我常看的就有好多错误.不过,还是可以作为一个参考的

我用 VC++6.0 结果是
6,6,6.000000,6.000000

i=f=l=d=20/3; 是什么意思?d赋值l,l再赋值f,f再赋值i
%d,%d,%f,%f是输出的格式,为什么应该很清楚了吧?

最后一句应为:printf("%d,%ld,%f,%f\n",i,l,f,d);