int main(){
double x=1;
double y=x+3/2;
printf("%lf\n",y);
return 0;
}
int main(){
double x=3;
double y=x+3/2;
printf("%lf\n",y);
return 0;
}
2.0
4.0
C语言中的加减乘除到底是怎么运算的呀,要是先加减后乘除,我第二个测试的为什么是4?
/的优先级是要高于+-的 我觉得你的疑惑应该是在这里,在c语言中对于除法运算符,当被除数和除数都是整数时,并不会得到一个浮点型的数,而是直接舍去小数部分(即向下取整),所以3/2直接就等于1了,哪怕你已经使用了double,你如果想要小数的话在除数或者被除数任意一个后面1.0就可以得到小数啦 所以(1)3/2=1,1+1=2(2)3/2=1,1+3=4,对您有帮助的话记得采纳哈
3/2是两个整数相除,执行的是整除操作,所以3/2=1,不是1.5
int除以int结果还是默认int只会有整数,不会包含小数,浮点型计算才有小数
x+3/2;
因为/优先级高于+,所以
这个是先执行3/2,再+x的
如果想先执行+,写成(x+3)/2;