C语言 求平均成绩 (求改错)

Description
输入每行为3个整数(0~100),代表某位学生的数学、英语和计算机课程的成绩,求该生的平均成绩,以整数表示(四舍五入)。输出格式见输出样例。
Input

Output

Sample Input

87 72 93
42 60 29
0 100 50

Sample Output

math=87,eng=72,comp=93,average=84
math=42,eng=60,comp=29,average=44
math=0,eng=100,comp=50,average=50

源代码:
#include<stdio.h>
void main()
{
int a,b,c;
double ave;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
ave=(a+b+c)/3;
printf("math=%d,eng=%d,comp=%d,average=%d\n",a,b,c,int(ave+0.5));
}
}

(四舍五入弄不明白了,求改错,求讲解)

(a+b+c)/3这样得到的结果只可能是整型。假如a、b、c分别为1、3、4,(a+b+c)/3=2,小数部分已经舍掉了。再加上0.5没用。
应该在这里强制转换,ave=(float)(a+b+c)/3;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-17
m=1.0/4*(a+b+c+d);
满意请采纳。追问

没看懂!