wxsh.net
当前位置:首页>>关于在C语言中(1/2)*(a+b)*h和 (a+b)*h*(1/2)为什么结...的资料>>

在C语言中(1/2)*(a+b)*h和 (a+b)*h*(1/2)为什么结...

你是不是a,b取的都是整形(int类型)?这是(1/2)*(a+b)*h中先算(1/2)*(a+b)。如果这个数小于0.5就会自动四舍五入变为零。所以再乘h还是零。而后面一种先算(a+b)*h再除以二。所以不为零

LZ您好,我想应该选择答案B在C语言中“/”号的两个操作数都为整数的话,结果为整数,其中任何一个为实数的话,结果为实数,如果变量a,b,h定义为实数,答案A,C,D都没有问题。只要答案B 中(1/2)的结果为零,所以最后的结果也为零。如果我的解答...

1/2结果为0. 1和2为整型 结果也去整为0. 但是1.0/2为0.5 因为1.0是浮点型

很多原因,比如说数据类型不对啊,或者精度不够啊,最大的可能是你的数用二进制表达的是无限小数

B中1/2=0,要=0.5,应该是1.0/2才行。 D中结果应该有小数部分,例如X.000000

不对,1/2肯定等于0,那么p=1/2*(a+b+c)为0,而p=(a+b+c)/2则需要看分子是否大于2,才能知道是否为0

你括号里是=符号,而不是==符号,因此不是赋值,而是逻辑运算 a初始赋值a=2,那么a=1为假,输出1 如果你想赋新的值,并输出新的赋值,将if后面括号里的=符号改为==

x=1/2*(a+b+c);首先算1/2 因为除数和被除数都是正数,那么默认结果也是正数 所以1/2=0 此时x=0 x=(a+b+c)/2 先算和 再把和除以2 所以只要 a+b+c大于等于2 那么x就肯定不是0了 一般用第二个赋值语句 或者用:x=(a+b+c)/2.0;

!(a+b)+c-1&&b+c/2=1

||有短路规则,左边的为真就不会进行右边的判断了,所以Cad在C语言中没见过,c选项后边应该是指针(&a就是指针类型了)应该选D吧!我的机器上是这样的。要么你程序没有写完。“(a=4*5,a*2)”,a+6"你是原表达式吗,怎么中间有一个”。因为宏之后是...

网站首页 | 网站地图
All rights reserved Powered by www.wxsh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com