模擬歌唱比賽評分:10 位評委打分 (1~100),去掉一個最高分與一個最低分,剩餘 8 分平均為最終得分。程式互動式輸入分數,排序後計算並顯示去除的最高/最低分、總分與平均分。
#include <stdio.h>
#define NUM 10
void star(void);
void sort(float score[]);
int main() {
int i;
float sum = 0, average, score[NUM];
star();
printf("請輸入每個評委給您打的分數\n");
for (i = 0; i < NUM; i++) {
printf("第%2d位評委打的分數為:", i+1);
scanf("%f", &score[i]);
}
sort(score);
for (i = 1; i < NUM-1; i++) sum += score[i];
average = sum / 8;
printf("\n去掉的最高分為:%.2f\n", score[NUM-1]);
printf("\n去掉的最低分為:%.2f\n", score[0]);
printf("\n去掉最高最低分後,您的總分為:%.2f\n", sum);
printf("\n去掉最高最低分後,您的平均分為:%.2f\n", average);
printf("\n哈哈, 謝謝您的合作!\nGOOD BYE!\n");
star();
return 0;
}
void sort(float score[]) {
int i, j; float t;
for (i = 0; i < NUM; i++)
for (j = i; j < NUM; j++)
if (score[i] > score[j]) {
t = score[i]; score[i] = score[j]; score[j] = t;
}
}
void star(void) {
for (int i = 0; i < 60; i++) printf("*");
printf("\n");
}

適合各類去極值平均分計算:體操、花樣滑冰、歌唱比賽等。