肛周炎和痔疮的区别:C语言:int a=12; a+=a-=a*a 执行后..得到多少???...

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 02:16:57
第二个问题
第二个问题:
执行下面的语句之后
得到是什么〉
是怎么算的?
main()
{
float f1,f2,f3,f4;
int m1,m2;
f1=f2=f3=f4=2;
m1=m2=1;
printf("%d\n",(m1=f1>=f2)&&(m2=f3<f4));
}
dou cuo le

等于145
首先算a×a
然后把a×a的值付给a然后a=a+1
所以计算后等于145

不知道对不,
-264
0

第一个
a*a=144,
a=a-a*a=12-144=-132
a=a+(-132)=-264

t第二个
赋值运算的优先级比关系运算低,先算关系运算
f1>=f2 正确
所以m1=1,
f3<f4错,所以m2=0;
&&前后两个式子都是赋值表达式,显然正确,所以结果为1

1. “=” 优先级比条件表达式低,因此 (m2 = f3<f4) 是先算 f3<f4 再赋值给 m2,其值为 0,逻辑与之后整个表达式为 0

2. 要明白浮点数的比较有精度问题,判断两浮点数是否相等,要用求差然后看绝对值是否在指定精度范围

3. 学习一下运算符优先级表,记住最容易的,其它的使用括号

4. 给你出第一题的人不是一个好老师

5. 痛恨谭浩强,他的教材培养了很多恶习

-264

0

-264
1