搜索
查看: 722|回复: 2
打印 上一主题 下一主题

求助:输入20个数,求最大值、最小值和平均值。

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-10 16:48:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[20],i,zd,zx,zh;
    float pj;
    printf("请输入20个数\n");
    for(i=0;i<20;i++)
    {
  scanf("%d",&a[i]);
    }
    zd=a[0];
    zx=a[0];
    zh=0;
    for(i=0;i<20;i++)
    {
  if(zd<a[i]) zd=a[i];
        if(zx>a[i]) zx=a[i];
        zh=zh+a[i];
    }
    pj=zh/20;
    printf("最大值是%d 最小值是%d 平均值是%f ",zd,zx,pj);
system("pause");
return 0;
}
输入10个1和10个2运行结果,平均值是1.000000为什么不是1.5?
推荐
发表于 2014-10-10 18:15:49 | 只看该作者
pj=zh/20;

这里,zh是int, 20是int, 那么zh/20就是int
你的例子里就是30 / 20,就是1,1转换成float还是1,1打印出来就是1.000000

最简单的解决方法是 pj=zh/20.0
板凳
发表于 2014-10-10 22:17:20 | 只看该作者
楼上正解,类型转换
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表