要求编写C语言程序。 将11位评委给出的选手成绩存至一维数组,计算并输 出选手的最终成绩(保留两位小数)。 选手的最终成绩为去掉一个最高分和去掉一个最低分。
时间: 2024-12-05 14:21:58 浏览: 15
在C语言中编写这个程序,首先你需要定义一个一维数组来存储11位评委的成绩,并通过循环读取用户输入。然后,你可以创建两个变量分别记录最高分和最低分。接下来,对剩余9位评委的成绩进行排序,最后计算平均值作为最终成绩。以下是简单的步骤和代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_JUDGES 11
int main() {
float scores[NUM_JUDGES];
float sum = 0.0, highest_score = 0.0, lowest_score = INFINITY; // 使用INFINITY表示最大浮点数
int i;
// 读取评委分数
for (i = 0; i < NUM_JUDGES; i++) {
printf("请输入第 %d 位评委的成绩: ", i + 1);
scanf("%f", &scores[i]);
// 更新最高分和最低分
if (scores[i] > highest_score) {
highest_score = scores[i];
}
if (scores[i] < lowest_score) {
lowest_score = scores[i];
}
sum += scores[i];
}
// 排序剩下的评委分数,这里假设用冒泡排序简化示例
for (i = 0; i < NUM_JUDGES - 2; i++) {
for (int j = 0; j < NUM_JUDGES - i - 1; j++) {
if (scores[j] > scores[j + 1]) {
float temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
// 计算并输出平均得分,保留两位小数
float average_score = (sum - highest_score - lowest_score) / (NUM_JUDGES - 2);
printf("去掉最高分和最低分后的最终成绩: %.2f\n", average_score);
return 0;
}
阅读全文