请问一下这个程序有什么错?

题目是:青年歌手参加比赛,有十个评委对他打分,试在去掉一个最高分和一个最低分后编程求这位选手的平均得分。
#include<stdio.h>
#include<math.h>
int main(){
int a[10];
float average;
int i,high,low,sum,sum1;
for(i=0;i<10;i++){
scanf("%d",&a[i]);}
for(i=0;i<10;i++){
if(a[i]<a[i+1]){
low=a[i];}}
for(i=0;i<10;i++){
if(a[i]>a[i+1]){
high=a[i];}}
printf("%d",a[i]);
sum+=a[i];
sum1=sum-high-low;
average=sum1/8;
printf("%f",average);
return 0;

}


#include<stdio.h>
#include<math.h>
int main() {
    int a[10];
    float average, sum = 0.0;
    int i, high = -1, low = 100000;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &a[i]);
        sum += a[i];
    }
    for (i = 0; i < 10; i++)
    {
        if (a[i] < low)
        {
            low = a[i];
        }
    }
    for (i = 0; i < 10; i++)
    {
        if (a[i] > high)
        {
            high = a[i];
        }
    }
    sum = sum - high - low;
    average = sum / 8;
    printf("%f", average);
    return 0;
}

计算最值、求和、算平均值不对

img