去掉最大值与最小值求平均数

为什么会这样啊,救命

img

img

你sum没赋初值,for循环里一直没变过,最后才算的sum

你这代码是C和C++混写的,cin是C++的,printf是C的。
代码如下:

#include <iostream>
#include <iomanip>
using namespace std;

float average(int a[],int n)
{
    int max,min,i;
    float avg = a[0];
    max = min = a[0];
    for(i=1;i<n;i++)
    {
        if(max < a[i])
            max = a[i];
        if(min > a[i])
            min = a[i];
        avg += a[i];
    }

    avg=(avg - max - min)/n;
    return avg;
}

int main()
{
    int a[100],n,i;
    //数组大小
    cin >> n;
    //输入n个数
    for(i=0;i<n;i++)
        cin >> a[i];

    cout << fixed <<  setprecision(2) << average(a,n) ;
    return 0;

}

数组、排序、求和、求平均