标题:数组代码求指正错误
只看楼主
Aglrialee
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-11-20
结帖率:100%
已结贴  问题点数:20 回复次数:6 
数组代码求指正错误
#include<stdio.h>
int main()
{
    int array[20]={0},i,sum,average;
    int max=array[0],min=array[0],count=20;
        for(i=0;i<20;i++)
    {
        scanf("%d",&array[i]);
        sum+=array[i];
        if(array[i]>max)
        max=array[i];
        else if(array[i]<min)
        min=array[i];
    }
    for(i=0;i<20;i++)
 {
    if(array[i]==max||array[i]==min)
    count--;
    sum-=array[i];
}
    average=(float)sum/count;
    printf("count=%d,average=%.2f\n",count,average);
    return 0;
}
本来是把最大值和最小值去掉再求平均值,可是最后平均值一直是0,求指正
搜索更多相关主题的帖子: average count include 
2016-11-30 16:01
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:3 
sum初始化

早知做人那么辛苦!  当初不应该下凡
2016-11-30 16:09
Aglrialee
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-11-20
得分:0 
回复 2楼 炎天
初始化之后还是都是0
2016-11-30 16:15
猿飞
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2016-12-1
得分:5 
min永远是0,最后的最小值一直是0,存入数据和比较最值不要同时进行,sum也没有初始化,

[此贴子已经被作者于2016-12-1 12:11编辑过]

2016-12-01 12:10
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
得分:5 
程序代码:
#include<stdio.h>
int main()
{
    int array[20]={0},i;
    int sum = 0;//给sum初始化
    float average = 0;//把average改成float类型
    int max=array[0],min=array[0],count=20;
    for(i=0;i<20;i++)
    {
        scanf("%d",&array[i]);
        sum+=array[i];
         if (i == 0)
         {max=array[0],min=array[0];}//假设最大值和最小值都是array[0]
        if(array[i]>max)
        max=array[i];
        else if(array[i]<min)
        min=array[i];
    }
    for(i=0;i<20;i++)

 {
    if(array[i]==max||array[i]==min)
     {   sum-=array[i];//减去最大值或最小值
         count--;//剩余数的个数
       }
}
    average=(float)sum/count;
    printf("count=%d,average=%.2f\n",count,average);
    return 0;
}
4楼说的对,一般存入数据和比较最值不要同时进行
我这样写每次都要进行判断,这代码并不优化


[此贴子已经被作者于2016-12-1 13:39编辑过]

2016-12-01 13:35
marlow
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:125
专家分:419
注 册:2016-7-18
得分:2 
回复 3楼 Aglrialee
float average, 不能为int

一切都在学习、尝试、摸索中
2016-12-01 13:51
拜见大佬
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2016-11-24
得分:5 
回复 楼主 Aglrialee
#include<stdio.h>
int main()
{
    int array[20],i,j,tem;
    float sum=0,average;
    for(i=0;i<20;i++)
      scanf("%d",&array[i]);
    for(i=0;i<20;i++)
        for(j=19;j>i;j--)
        {
         if(array[j]<array[j-1])
            tem=array[j];
               array[j]=array[j-1];
               array[j-1]=tem;
        }
    for(i=1;i<19;i++)
        sum=sum+array[i];        
    average=sum/18;
    printf("average=%f",average);
    return 0;
}
sum初始化
float sum,average;
我觉得先给数组排序会更好
2016-12-01 21:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471811-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved