弱弱的问一个关于C语言的计算题,求具体点的运算步骤```

若有定义 int b=7;float a=2.5,c=4.7; 则表达式
a+(int)(b/3*(int)(a+c)/2)%4 的值 。 本人才开始学C语言 希望步骤具体点。 谢谢```
答案是5.500000 感谢```

第1个回答  2010-04-22
首先,有括号的优先计算,
其次。(int)(x)的意思是把x强制转换成整型
最后,x%y的意思是,x除以y之后的余数。
所以表达式=a+(int)(b/3*(int)(7.2)/2)%4
=a+(int)(b/3*7/2)%4
=a+(int)(7/3*7/2)%4
=a+8%4
=2.5+0=2.5
第2个回答  2010-04-22
int main()
{
int b = 7;
float a = 2.5;
float c = 4.7;

float sum = a+(int)(b/3*(int)(a+c)/2)%4;
pritf("%f", sum);
return 0;
}

应该输出5.500000
需要注意的是,由于进行了隐式类型转换,所以要用float变量来接运算结果。本回答被提问者采纳
第3个回答  2010-04-22
b=7,a=2.5,c=4.7
括号里的int是强制类型转换的作用
a+(int)(b/3*(int)(a+c)/2)%4
=2.5+(int)(7/3*(int)(2.5+4.7)/2)%4
=2.5+(int)(2*(int)(7.2)/2)%4
=2.5+6%4
=2.5+2
=4.5

b/3=2;//取商的整数部分
6%4=2;//是6除4的余数