代码无错,max传回来的参数错误,不知道什么地方错了


#include <stdio.h>
#define N 10

double fun(double b[N],double *max,double *min)
{
    double pj;int x,i,j;double t=0;double sum=0;
    for(i=0;i<N-1;i++)
    {
        for(j=0;j<N-i-1;j++)
        {
            if(b[j]>b[j+1])
            {
                t=b[j];b[j]=b[j+1];b[j+1]=t;
            }
        }
    }
    *max=b[N-1];
    *min=b[0];
    for(x=0;x<N;x++)
    {
        sum+=b[x];
    }
    
    pj=sum/N;

    return pj;
}

void main()
{
    int i,j;
    double a[N],max=0,min=0,pj;
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
        
    }
    pj=fun(a,&max,&min);
    for(j=0;j<N;j++)
    {
        printf("%d  ",a[j]);
    }
    printf("平均数:%d, 最大值:%d,  最小值:%d",pj,max,min);
}

img

double型变量啊,你全部用%d输入输出。输入改成%lf,输出改成%g就可以了