注册 登录
编程论坛 C++教室

进来看一下,送分题!!

无诲今生 发布于 2009-10-14 01:17, 987 次点击
#include<iostream.h>
void main()
{
    float z;
    z=1/4;
    cout<<z<<endl;
}
为什么会输出0,而不是输出0.25?
13 回复
#2
a123456v1562009-10-14 08:05
类型问题,你把z=1/4改成z=1.0/4或z=1/4.0进行类型转换就可以了。
#3
a123456v1562009-10-14 08:06
哈哈,我也是初学者,有空大家一起交流。
#4
最左边那个2009-10-14 10:14
#include<iostream.h>
void main()
{
    float z;
    z=1/4;
    cout<<z<<endl;
}

个人认为可能是这样的:1/4在这里,编译软件把1和4当成是int类型,那么编译器把得出的结果也默认为是int类型,所以就由我们理解中的0.25变成了0;

可以强制转换,也可以像楼上说的那样修改!

小弟不才,个人愚见!
#5
无诲今生2009-10-14 20:06
谢大家的回答!
#6
desheng777772009-10-14 21:28
#include<iostream.h>
void main()
{
    float z; void main()

    z=1/4;
www.
    cout<<z<<endlvoid main()
#7
无诲今生2009-10-15 12:56
没见过6楼的这种写法,不才向你请教下!能不能解释下?
#8
sxzzh2009-10-15 22:57
有6楼这种写法吗?

#9
newCpp2009-10-16 17:20
顶二楼真的有哈!!
#10
邢书豪2009-10-19 11:05
最左边的那个说的真好!
#11
cj105042009-10-20 22:05
六楼的好神奇,这也可以。。
#12
miaokk2009-10-21 14:21
6楼的好神奇。。
#13
wujiya2009-10-21 14:25
那是因为对于“/”这个操作符,它的默认返回值就是一个int类型。
1