c语言问题,数组应用

一年一度的校园歌手大赛开始了,请模拟比赛过程。已知有10个评委,评分在0-100之间,选手总分计算规则为:去掉一个最高分、去掉一个最低分,取剩下评分的平均值为该选手的最终得分。
已知已经走入总决赛,剩余3个选手。
请编写程序模拟为三个选手打分并显示三个选手最终得分的过程,要求使用数组。
我是想通过数组跟循环结合求出最大值最小值对应的下标m n然后再利用数组跟循环结合设置范围i小于m大于n。
这样子能行吗,有大佬给点思路吗


#include <stdio.h>

/*
    设计一个“卡拉OK大赛评分系统”
    本程序启动后,会提示“卡拉OK大赛正式开始”,然后请10位裁判分别打分,
    最后去掉一个最高分和一个最低分,将其余分数的平均分作为选手的最后得分
*/ 
void main(){
    float a[10]; //保存10个评委的分数 
    int i;
    float max;//保存最高分
    float min;//保存最低分
    float avg=0;//保存10个评委的平均分
    //显示界面
    printf("\t\t\t*****************************************************\n");
    printf("\t\t\t*                                                   *\n");
    printf("\t\t\t*               卡拉OK大赛评分系统                  *\n");
    printf("\t\t\t*                                                   *\n");
    printf("\t\t\t*****************************************************\n");
     
    //1.输入10个评委的分数
    for(i=0;i<10;i++){
        printf("\t\t\t请输入第%d个评委的打分:",i+1);
        //获取从键盘输入的分数 
        scanf("%f",&a[i]);
    } 
    //2.对max,min赋初值
    max = a[0];
    min = a[0]; 
    avg = a[0];
    //3.求最高分,最低分,总分
    for(i=1;i<10;i++){
        //求最高分
        if(max<a[i]){
            max = a[i];
        } 
        //求最低分
        if(min>a[i]){
            min = a[i];
        } 
        //求总分
        avg += a[i]; 
    } 
    //求平均分 = (总分-最高分-最低分 )/8
    avg = (avg - max - min)/8;
    //4.输出结果
    printf("去掉一个最高分%0.2f,去掉一个最低分%0.2f,最后得分是:%0.2f",max,min,avg); 
     
} 

可以将评分存放在数组中,对数组排好序后,去掉第一个和最后一个元素。