有10位评委打分,选手的成绩为去掉一个最高分和一个最低分后 的平均分。编亏程序,输入n个参赛选手的打分情况,输出每位选手的最终得分 平均数哪里算错了

平均数的结果哪里错了
#include
#include
using namespace std;
int main(){
int i,j,n;
char s[50][20];
int a[10];
double min[100],max[100],avg[100],t;
for(i=0;i<100;i++){
min[i]=100;
max[i]=0;
avg[i]=0;
}
cout<<"Input number of the singer:";
cin>>n;
cout<<"Input singer data:"<<endl;
for(i=0;i<n;i++){
cout<<"Input Name:";
cin>>s[i];
cout<<"Input 10 scores:"<<endl;
for(j=0;j<10;j++){
cin>>a[j];
if(a[j]>=max[i]){
max[i]=a[j];
}
if(a[j]<=min[i]){
min[i]=a[j];
}
}

}
cout<<"-----------------------------------"<<endl;
cout<<"Name        Score"<<endl;
for(i=0;i<n;i++){
    for(j=0;j<10;j++){
    avg[i]=avg[i]+a[j];
    }
    avg[i]=avg[i]-max[i]-min[i];
    avg[i]/=8;
    cout<<left<<setw(12)<<s[i];
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<avg[i]<<endl;
}


return 0;

}

可参考以下代码自行修改


#include<stdio.h>
int main()
{
    int i, j, temp, N, sum = 0, len, a[100];
    double ave;
    scanf_s("%d", &N);
    for ( i = 0; i < N; i++)
        scanf_s("%d", &a[i]);
    len = i;
    for (i = 0; i < len - 1; i++)       
       {
           for (j = 0; j < len - 1 - i; j++)
           {
               if (a[j] > a[j + 1])
               {
                   temp = a[j];
                   a[j] = a[j+1];
                   a[j+1] = temp;
               }
           }
       }
    for (i = 1; i < len - 1; i++)
        sum += a[i];
    ave = 1.0 * sum / (len - 2);
    printf("%f", ave);
    return 0;
}

你的平均分都是int型吗,没要求小数点吗

看起来好像没什么问题,你还是单步调试一下,观察下变量