有知道这个平均值代码错在哪了吗

img


img

sum之后多了个a
改成avg = sum*1.0/N;

int i,max,min,float sum=0;
改成
int i,max,min;
float sum=0;

代码改好了

#include<stdio.h>
#define N 10
int main()
{
    int a[N]={1,22,3,44,5,61,70,18,9,10};
    int k,min,max;
    double sum=0;
    double avg;
    max=min=a[0];
    for(k=0;k<N;k++)
    {
        sum=sum+a[k];
        if(max<a[k]) max=a[k];
        if(min>a[k]) min=a[k];
    }
    avg=sum/N;
    printf("max=%d,min=%d,avg=%lf\n",max,min,avg);
    for(k=N-1;k>=0;k--)
        printf("%-4d",a[k]);
    return 0;
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

都说了要avg=sum*1.0/N啊
sum/N是整除,小数部分被舍弃了

sum写错了,然后你把两个不同类型的数据相等了,你可以乘或除以一个1.0