int k = 100, a[10000];
int i, over_ave = 0, s, n = 0, sum = 0;
float ave;
scanf("%d", &s);
while (s!=-1)
{
a[n] = s;
sum = sum + s;
n++;
scanf("%d", &s);
}
ave = sum / (float)n;
for (i = 0; i < n; i++)
{
if (a[i] > ave)
over_ave++;
}
printf("%.2f,%d\n", ave, over_ave);
return 0;
}
这里的ave=sum/(float)n 吧(float) 去掉为什么就错了 不明白
你的这个代码里,ave是浮点型,n和sum是整型,如果没有(float)将n或sum强制转化为浮点型,同一个公式你数值类型就不相同。你这个代码n转换为浮点型,但sum是整型,他就会把结果输出为浮点型
整数除法结果也是整型,小数都舍掉了
把n强制转换成浮点数,那么就是浮点数除法了,结果也是浮点型