刚学c语言,有没有人帮解答一下,如何解决?

img

img


为什么运行正确,在tzoj的上提交后显示错误哪,有没有人帮解答一下

第9行错误,改为avg = (a+b+c)/3.0;

平均数,这样求:
avg = 1.0 * (a+b+c) /3;

因为第九行 a,b,c 均为int类型 3也默认为int类型 所以 (a+b+c)/3 默认得到的是一个int类型的值 (会舍弃小数点)
而你想得到一个double类型的值需要一个类型转换 当除数或者背出说为double类型的时候才能正常输出一个double类型的值
比如 1.0*(a+b+c)/3
比如 (a+b+c)/3.0
都可以

#include <stdio.h>

int main()
{
int a,b,c;
int d,e;
float f=0.00;
printf("请输入三个正整数:");
scanf("%d%d%d",&a,&b,&c);
if (a<0||b<0||c<0) {
printf("输入有误!");
return 0;
}
//不考虑越界
d=a+b+c;
e=abc;
f=1.00*d/3;
printf("三个数的和、乘积、平均数分别是:\n%d %d %.2f",d,e,f);
// printf("\n三个数的和、乘积、平均数的字节长度分别是:\n%d %d %d",sizeof d,sizeof e,sizeof f);
return 0;
}