如何用C语言编写程序,在歌曲大赛中计算十个评委给出的分数(去掉最高分和最低分)后,得出选手的 总分,最高分,最低分和平均得分?
时间: 2024-11-07 19:29:53 浏览: 72
在C语言中,你可以按照以下步骤来编写程序:
1. 定义数组存储评委的评分和变量记录总分、最高分和最低分。
```c
#include <stdio.h>
#define NUM_JUDGES 10
int scores[NUM_JUDGES]; // 存储评委评分
int total_score = 0; // 总分
int max_score = scores[0]; // 初始化最高分为第一个评分
int min_score = scores[0]; // 初始化最低分也为第一个评分
// 函数声明
void remove_extreme_scores(int* scores, int& n);
double calculate_average();
```
2. 使用循环读取每个评委的评分并累加到总分,并更新最高分和最低分。
```c
void read_scores() {
for (int i = 0; i < NUM_JUDGES; ++i) {
printf("请输入第%d位评委的评分:", i+1);
scanf("%d", &scores[i]);
if (scores[i] > max_score)
max_score = scores[i];
else if (scores[i] < min_score)
min_score;
total_score += scores[i];
}
}
// 函数实现
void remove_extreme_scores(int* scores, int& n) {
int temp;
for (int i = 0; i < n - 2; i++) { // 遗留8个评分
temp = scores[i];
scores[i] = scores[i + 2]; // 移动中间的评分
scores[i + 2] = temp;
}
}
```
3. 执行极端值去除操作,然后计算新的平均得分。
```c
void process_scores() {
remove_extreme_scores(scores, NUM_JUDGES);
}
double calculate_average() {
return (total_score - max_score - min_score) / (NUM_JUDGES - 2); // 去掉最高分和最低分后的平均分
}
```
4. 主函数中调用上述功能并显示结果。
```c
int main() {
read_scores();
process_scores();
printf("选手总分:%d\n", total_score);
printf("最高分:%d\n", max_score);
printf("最低分:%d\n", min_score);
printf("平均得分:%.2f\n", calculate_average());
return 0;
}
```
阅读全文