c语言程序设计

[复制链接]
查看11 | 回复5 | 2008-7-15 16:06:47 | 显示全部楼层 |阅读模式
若有 int a=2,b=3;float c=5.0,d=2.5;则(a+b)/2+c/d的初值为4。这个表达式正确吗?

回复

使用道具 举报

千问 | 2008-7-15 16:06:47 | 显示全部楼层
严格来讲,不正确int定义的是整型,运算后只取整数部分,小数部分丢失故 (a+b)/2=2float定义的是实型,运算后有八位有效数字故 c/d=2int和float混合运算后得到的是float型的数据整个式子的结果是 4.0000000
回复

使用道具 举报

千问 | 2008-7-15 16:06:47 | 显示全部楼层
不对是 float 类型的4.000000,你可以在编译器里运行#includeint main(void){
int a=2,b=3;
float c=5.0,d=2.5;
printf("%f\n",((a+b)/2+c/d));
return 0;}输出结果是4.000000
回复

使用道具 举报

千问 | 2008-7-15 16:06:47 | 显示全部楼层
对,不过值为float`型首先(a+b)/2的值为整型2,c/d为浮点型2,两式相加为浮点型4
回复

使用道具 举报

千问 | 2008-7-15 16:06:47 | 显示全部楼层
(a+b)/2应该等于2
回复

使用道具 举报

千问 | 2008-7-15 16:06:47 | 显示全部楼层
/是二目运算符 两边都要整数吧~~~
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行