这个怎么做啊??
											编写演讲比赛评分程序,假定有10个选手,5个评委,选手的得分是去掉一个最高分和一个最低分的平均分。计算出每个选手的平均分,并按从高分到低分的顺序输出所有选手的得分										
					
	
程序代码:
#include <stdio.h>
#define PLAYER 10
#define REFEREE 5
float calc_score(float *score, int count)
{
    float sum = 0;
    int i, j, tmp;
    /* 冒泡排序(从大到小) */
    for (i = 0; i < count - 1; i++) {
        for (j = i + 1; j < count; j++) {
            if (score[i] < score[j]) {
                tmp = score[i];
                score[i] = score[j];
                score[j] = tmp;
            }
        }
    }
    /* 平均分 */
    for (i = 1; i < count - 1; i++) {
        sum += score[i];
    }
    return sum / (count - 2);
}
typedef struct _player_score {
    int   number;
    float score;
} player_score_t;
int main(void)
{
    int i, j, index = 1;
    float referee_score[REFEREE];
    player_score_t player_score[PLAYER];
    /* 输入 评分 */
    for (i = 0; i < PLAYER; i++) {
        printf("请输入 %2d 号选手得分:\n", i + 1);
        for (j = 0; j < REFEREE; j++) {
            printf("  裁判 %2d 判分: ", j + 1);
            scanf("%f", &referee_score[j]);
        }
        player_score[i].number = i + 1;
        player_score[i].score = calc_score(referee_score, REFEREE);
    }
    /* 选手排序(冒泡) */
    for (i = 0; i < PLAYER - 1; i++) {
        for (j = i + 1; j < PLAYER; j++) {
            player_score_t tmp;
            if (player_score[i].score < player_score[j].score) {
                tmp.number = player_score[i].number;
                tmp.score  = player_score[i].score;
                player_score[i].number = player_score[j].number;
                player_score[i].score  = player_score[j].score;
                player_score[j].number = tmp.number;
                player_score[j].score  = tmp.score;
            }
        }
    }
    /* 显示成绩 */
    printf("==== 成绩:\n");
    for (i = 0; i <  PLAYER; i++) {
        if (i > 0 && player_score[i].score != player_score[i - 1].score) {/* 非并列, 增加名次 */
            index = i + 1;
        }
        printf("  第 %2d 名: 选手 %2d 成绩 %.1f\n", index, player_score[i].number, player_score[i].score);
    }
    return 0;
}
										
					
	


											
	    

	

