用c语言设计一个打分评分系统,键盘加入十个评委分数存放在数组中,请将分数按照从小到大的顺序输出,去掉最高分和最低分,输出平均分
时间: 2024-02-20 19:59:17 浏览: 90
好的,下面是用C语言设计的打分评分系统,实现了您的要求:
```c
#include <stdio.h>
#define NUM 10 // 评委数量
int main() {
int scores[NUM]; // 存放评分的数组
int sum = 0, max = 0, min = 10; // sum表示总分数,max和min分别表示最高分和最低分
// 读入评分
for (int i = 0; i < NUM; i++) {
printf("请输入第%d个评委的评分:", i+1);
scanf("%d", &scores[i]);
// 计算总分和最高分、最低分
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 去掉最高分和最低分
sum = sum - max - min;
// 排序
for (int i = 0; i < NUM-1; i++) {
for (int j = i+1; j < NUM; j++) {
if (scores[i] > scores[j]) {
int temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
// 输出排序后的分数
printf("排序后的分数为:");
for (int i = 1; i < NUM-1; i++) { // 注意去掉最高分和最低分
printf("%d ", scores[i]);
}
// 输出平均分
float avg = (float)sum / (NUM-2); // 注意去掉最高分和最低分
printf("\n平均分为:%.2f\n", avg);
return 0;
}
```
上述代码中,我们首先定义了评委数量为10,然后定义了一个数组来存放评分。在读入评分的同时,我们计算出总分和最高分、最低分。接着,我们去掉最高分和最低分,并将分数从小到大排序,最后输出排序后的分数和平均分。
需要注意的是,我们在计算平均分时需要去掉最高分和最低分,这里使用了`sum = sum - max - min`来实现。同时,在计算平均分时,我们需要将总分转换为浮点数,否则会出现整数除整数的结果为整数的情况,因此使用了`(float)sum / (NUM-2)`。
阅读全文