C语言 为什么浮点错误了?求平均值的

#include<stdio.h>intmain(intargc,char*argv[]){intx,i,y,a=0,b=0,c=0,d=0;//c为奇数个,d为偶素个d... #include <stdio.h>
int main(int argc, char *argv[])
{
int x,i,y,a=0,b=0,c=0,d=0;//c为奇数个,d为偶素个
double av1=0.00,av2=0.00;av1是奇数均值av偶数均值
scanf("%d",&i);
while(i--){
scanf("%d",&x);if(x==0)break;
if(x%2==0){b+=x;d++;

}
else {a+=x;c++;}
}

av1=a/c;av2=b/d;
//printf("%d %d\n",a,b);
printf("av1=%.2lf,av2=%.2lf",av1,av2);
return 0;
}
展开
 我来答
牛奶不喝奶
2019-10-26 · 初出茅庐
牛奶不喝奶
初出茅庐
采纳数:15 获赞数:37
国家奖学金获得者,优秀毕业生,第九届蓝桥杯国赛三等奖

向TA提问 私信TA
展开全部

原因如楼下所说,就是除号‘/’算出来的结果类型取决于其俩边的数据类型,当有一边为浮点型时,他的值才为浮点型

syht2000
高粉答主

2019-10-26 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
c里两整数相除结果还是整数,所以你后面的av1=a/c可以改为比如av1=1.0*a/c或者av1=(double)a/c,后面的av2也是一样。
更多追问追答
追问

那样子,答案不对啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式