我想知道为什么会是这个答案

#include<stdio.h>

int main()

{

int m=7,n=4;

float a=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf("%f\n",x);

}

m/2+n*a/b+1/2分为三部分:

1)m/2:m是int类型,所以m/2的值也是int类型,结果是7/2=3

2)n*a/b:a和b都是float类型,所以按照float类型计算,结果是24.000000,

3)1/2:1和2都是整数,结果是整数,结果1/2=0

最后三部分相加,因为2)是float类型,所有都转成float计算:3.000000+24.000000+0.000000=27.000000