c语言的题目,请各位大神为我解答

某学院举办技能大赛,5位评委分别给出选手得分(1-100,精确到小数点后2位),去掉其中的一个最高分和一个最低分后的3位评委给出的得分之和为该选手的总分。假设参赛选手共有10名,从键盘输入各选手的选手好,5位评委给出得分,然后依据上述要求计算选手的总分,并显示出各选手的号码,5位评委给出的得分和选手的总分。

代码如下

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#include <string.h>

struct Signer 
{
    char name;     //编号
    float score[5];  //成绩
    float max;       //最高分
    float min;       //最低分
    float sum;       //总分
    //float avg;       //平均分
};
int main()
{
    Signer ss[10];
    Signer tmp;
    int i = 0,j = 0;
    printf("请输入10名选手的名字\n" );
    for ( i = 0; i < 10; i++)
    {
        gets(ss[i].name);
    }
    printf("请输入每个选手的成绩\n" );
    for ( i = 0;i < 10; i++)
    {
        ss[i].sum = 0.0;
        printf("%s:",ss[i].name);
        for(j = 0; j < 5; j++)
        {
            scanf("%f", &ss[i].score[j]);
            ss[i].sum += ss[i].score[j];
            if (j == 0)
            {
                ss[i].max = ss[i].score[0];
                ss[i].min = ss[i].score[0];
            }else
            {
                if(ss[i].score[j] > ss[i].max)
                    ss[i].max = ss[i].score[j];
                if(ss[i].score[j] < ss[i].min)
                    ss[i].min = ss[i].score[j];
            }
        }
        ss[i].sum = ss[i].sum - ss[i].max - ss[i].min ;
    }
    for (i = 0; i < 9; i++)
    {
        for (j = 0; j < 9-i; j++)
        {
            if (ss[j].sum < ss[j+1].sum)
            {
                tmp = ss[j];
                ss[j] = ss[j+1];
                ss[j+1] = tmp;
            }
        }
    }
    for (i = 0; i < 10; i++)
    {
        printf("%s:总分:%.2f;评委打分:", ss[i].name,ss[i].sum);
        for(j = 0; j < 5;j++)
          printf("%.2f ",ss[i].score[j];
        printf("\n");
    }
    return 0;
}