HELP! c语言 请问我这里有什么错误让我的结果有误差

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    double min,max,a[n],sum,aver;
    for(i=0;i<n;i++)
        {
        scanf("%lf",&a[i]);
        sum+=a[i];
        min=max=a[0];
        if(min>=a[i])
            min=a[i];
        if(max<=a[i])
            max=a[i];
        }
    sum=sum-max-min;
    aver=sum/(n-2);
    printf("%.2f",aver);
    return 0;
}
输入7
9 8 8.5 7 7.9 9.5 8.9
结果应该是8.46
但是我的结果是8.18

sum初始化为0试一下

题目要求去掉最大值和最小值然后求平均,但是题主应该弄成去掉第一个值和最后一个值,我用计算器算是这样,然而也为此题发愁的我并不知道怎么修改……