| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:问个新手问题,谢谢回答
只看楼主 加入收藏
wangyongmin
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-25
收藏
 问题点数:0 回复次数:7 
问个新手问题,谢谢回答
若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是


请详细点回答!!!
搜索更多相关主题的帖子: double 表达式 
2006-09-25 19:49
小小贝
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-9-21
收藏
得分:0 
大概是1.000000吧
2006-09-25 20:41
xiaoyunhu
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-24
收藏
得分:0 

c语言在不同的编译器中的特性是不一样的.这个问题主要是逗号表达式的问题:逗号表达式的最后结果是最右边的一个表达式的值,所以该问题中最后的输出应该是表达式"y=x+3/2"的值.我用的编译器中把3和2看成是整形,所以3/2的结果是1,即总的输出是1+1=2,输出为2.000000
如果你写成y=x+3.0/2那么结果就是2.500000了,这个时候把3.0看成了double了


小晕乎
2006-09-25 21:10
wangyongmin
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-25
收藏
得分:0 
晕!!! 我用TC做出来是0,是不是做错了,有没有人告诉我
2006-09-25 22:55
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

3楼的解释是对的.我觉得你可能是弄错类型了.
楼主,你测试一下.
/*TC*/
#include<stdio.h>
main()
{
double x,y,z;
z=(x=1,y=x+3/2);
printf("%lf\n",x=1,y=x+3/2);//注意这里是输出x的值
printf("%lf\n",z);//这里是输出表达式的值.

}


倚天照海花无数,流水高山心自知。
2006-09-26 13:22
xiaoyunhu
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-24
收藏
得分:0 

good luck....


小晕乎
2006-09-26 13:25
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
收藏
得分:0 
最后的教训是,在计算时如果用了double型,就最好把数值常数也表示成double型,不然很容易出错误

此人已消失
2006-09-26 14:59
wangyongmin
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-25
收藏
得分:0 
太感谢了!!!
2006-09-26 19:39
快速回复:问个新手问题,谢谢回答
数据加载中...
 
   



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

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