C语言中,a,b,c,d为double类型,数学表达式为5ab/7cd,在电脑中表达式5/7*a/c*b/d为什么是错的

如题所述

在5/7*a/c*b/d中,
先运算5/7,他们都是int型的,得到的结果也要是int型的0。这跟我们数学表达式是不一样的。追问

为什么a/c*5/7*b/d却是对的呢

追答

不同类型的数据混合运算时,会自动把低级的的转化为高级的以保证精度不降低。
因为a/c的结果是double型,double型与int型的5相乘会自动把int型的5转化为double型。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-29
求打括号

5是int型,在运算的时候会依据最左边的那个变量而计算之后所有运算
如果改成double(5)应该会好吧?
我没试
第2个回答  2013-05-29
因为你虽然定义了a,b,c,d的类型,但是5/7的值就是0,无论你执行什么操作,结果都是0.
相似回答