楼主的书在哪买的,分析完全是错误的,,(a+b)/2中,“/”是取整,结果5/2取整是2 ,,后面结果是1,所以最终结果是
3.000000,,如果想保留一位小数,则在printf()中设定位宽。。
程序运行如下:
#include<stdio.h>
int main()
{
int a=2;
int b=3;
float x=3.5;
float y=2.5;
float sum,sum1;
sum=(float)((a+b)/2+(int)x%(int)y);
printf("sum=%f\n",sum);
//3.000000
sum1=(float)((a+b)/2+(int)x%(int)y);
printf("sum=%.1f\n",sum1);
//3.0
getch();
return 0;
}