2 z2432356108 z2432356108 于 2014.12.01 21:30 提问

计算若干个浮点数的平均值,以‘Y’作为输入结束
num

include

int main(void)
{
float num,sum=0,avg;
int count=0;
while(1)
{
scanf("%f",&num);
if(num==Y)break;
count++;
sum=sum+num;
}
if(count!=0)
avg=sum/count;
printf("平均值为:%f",avg);
return 0;

}
为什么当输入num==Y时就不能算出平均值。谢谢

3个回答

u010603896
u010603896   2014.12.03 10:55
已采纳

int main(void)
{
float num,sum=0,avg;
int count=0;
while(1)
{
scanf("%f",&num);
if(num==0)break;
count++;
sum=sum+num;
}
if(count!=0)
avg=sum/count;
printf("平均值为:%f",avg);
return 0;
}

注:输入0时,退出!!

z2432356108
z2432356108 谢谢
接近 3 年之前 回复
u010603896
u010603896   2014.12.01 22:15

你确定Y是float类型?重新声明一个控制的字符型变量吧

z2432356108
z2432356108 但题目要求是Y啊,能帮我改下吗?谢谢
接近 3 年之前 回复
z2432356108
z2432356108 回复u010603896:
接近 3 年之前 回复
u010603896
u010603896 回复z2432356108: 不用改了!因为你那个Y不是变量。你可以设定当输入0的时候退出!把那个Y换成0吧!就可以了!
接近 3 年之前 回复
z2432356108
z2432356108 # include<stdio.h> int main(void) { float num,sum=0,avg; char Y ; int count=0; while(1) { scanf("%f",&num); if(num==Y)break; count++; sum=sum+num; } if(count!=0) avg=sum/count; printf("平均数为:%f",avg); return 0; }还是不行啊,能帮我修改下吗?谢谢
接近 3 年之前 回复
woyidingshijingcheng
woyidingshijingcheng   2014.12.01 22:43

你把浮点型的数强制转化为整型,然后比较是否等于字符“Y” 的ASCII码值,就行啦!

z2432356108
z2432356108 谢谢
接近 3 年之前 回复
z2432356108
z2432356108 谢谢
接近 3 年之前 回复
z2432356108
z2432356108 # include<stdio.h> int main(void) { float num,sum=0,avg; char Y ; int count=0; while(1) { scanf("%f",&num); if(num==Y)break; count++; sum=sum+num; } if(count!=0) avg=sum/count; printf("平均数为:%f",avg); return 0; } 还是不行啊,能帮我修改下吗?谢谢
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片