代码没有问题,为什么执行出来算不出来平均值?

img

最后输出语句改为:

printf("ODD:CT=%d  AVE=%f\n", ct_odd,(float) sum_odd / ct_odd);
printf("EVEN:CT=%d  AVE=%f\n",ct_even,(float)sum_even/ct_even);

这是因为如果分子分母都是整数的话,c语言或者c++或进行整除处理,只有当分子或者分母至少一个为小数的时候,结果才是小数。

例子:

img

你定义的变量都是 int 类型,int 类型的除法结果只保留整数位,要保留小数位的要先把 int 类型强转为 float 或者 double

两个整数相除的话,当做整除处理的,不会有小数
要想得到小数,那么两个数至少有一个必须明确为浮点型才可以

建议将sum_odd和sum_even定义为浮点型