明星大侦探 纵火犯:C语言问题~

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 16:38:18
int a=2,b=3;float x=3.5,y=2.5;
(float)(a+b)/2+(int)x%(int)y
求表达式的值 答案是3.500000
麻烦把具体步骤说明一下
然后再解释:
1(float)(a+b)/2是不是把(a+b)/2定义为float型?
2(int)x%(int)y的含义
谢谢~

(float)(a+b)/2就是把(a+b)/2的结果按照float型处理,于是得到2.5

(int)x%(int)y 就是把x和y都取整,也就是变成x=3,y=2
然后求x%y,也就是1了

相加后得到3.5,而整型的数据和float型相加,结果就会自动转换成比较高的类型,也就是float型,结果就是3.500000

(float)(a+b)/2是把(a+b)定义为float型,然后再除2。
(int)x%(int)y是指先把x和y转化为int型,然后再取余,得1。
float型的2.5000000和int型的1相加的float型的3.500000 。

圆括号里加类型定义符为类型强制转换符,即把相应的变量或表达式的值转换为括号内所指的类型。
1是指把表达式的值强制转换为float型。
2先对x,y强制转换为整形再取余。