C语言题目

[复制链接]
查看11 | 回复5 | 2010-8-9 14:01:29 | 显示全部楼层 |阅读模式
下列程序的输出结果是____
main()
{double d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf("%f\n",d*y);
}
为什么结果是0?

回复

使用道具 举报

千问 | 2010-8-9 14:01:29 | 显示全部楼层
x是int型的,当X=1.2执行结束后,自动转换为X=1;Y也是整型的这个时候Y=(X+3.8)/5.0=4.8/5.0=0;取整数部分
回复

使用道具 举报

千问 | 2010-8-9 14:01:29 | 显示全部楼层
因为x,y已声明为整型。则在给x赋值1.2时,x只取整数部分1。所以y等于4.8/5.0的整数部分:0。故输出结果为零。不知说的是否明白。希望对你有帮助!!!!!
回复

使用道具 举报

千问 | 2010-8-9 14:01:29 | 显示全部楼层
关键还是在于理解数据类型的含义啊~~~~~
回复

使用道具 举报

千问 | 2010-8-9 14:01:29 | 显示全部楼层
关键在于x,y是int型的,赋值是会取整,所以x=1,y=0,d*y就=0了。
回复

使用道具 举报

千问 | 2010-8-9 14:01:29 | 显示全部楼层
x和y都是int,int是没有小数的,即使是1.9也算做1y=(x+3.8)/5,其实就是(1+3.8)/5,结果是0点几的一个小数,由于y也是int,小数部分依然舍去,所以是0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行