用C语言作答歌手大奖赛。在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。 输入样例: 80 89 85 73 93 91 88 78 86 82 输出样例: 84.88
时间: 2023-10-24 20:08:44 浏览: 142
请以下C语言实现,请注意代码中的注释:
```c
#include <stdio.h>
int main() {
// 定义变量和数组
int i, max, min;
double sum = 0;
int score[10];
// 循环读入10个评委的分数
for (i = 0; i < 10; i++) {
scanf("%d", &score[i]);
}
// 找出最高分和最低分的下标
max = min = 0;
for (i = 1; i < 10; i++) {
if (score[i] > score[max]) {
max = i;
}
if (score[i] < score[min]) {
min = i;
}
}
// 计算去掉最高分和最低分后的总分
for (i = 0; i < 10; i++) {
if (i != max && i != min) {
sum += score[i];
}
}
// 输出结果
printf("%.2f", sum / 8);
return 0;
}
```
希望能够帮到您!
相关问题
c语言10个选手10个评委,求教C语言题:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。...
这是一道经典的算法题,可以使用循环和数组来实现。具体思路如下:
1. 首先,定义一个二维数组 `score`,其中第一维表示选手编号,第二维表示评委编号,用来存储每个选手每个评委的得分;
2. 然后,使用循环嵌套遍历所有的选手和评委,接收用户输入每个评委给每个选手的得分,并将其存储到数组中;
3. 在输入完成后,遍历所有的选手,计算其总分和平均分,并输出结果。
以下是示例代码:
```c
#include <stdio.h>
int main() {
int score[10][10]; // 定义二维数组存储分数
int i, j, sum, avg;
// 接收用户输入每个评委给每个选手的得分
for (i = 0; i < 10; i++) { // 遍历所有选手
printf("请输入第%d个选手的分数:\n", i + 1);
for (j = 0; j < 10; j++) { // 遍历所有评委
printf("请输入第%d个评委的分数:", j + 1);
scanf("%d", &score[i][j]); // 存储分数
}
}
// 计算每个选手的总分和平均分,并输出结果
for (i = 0; i < 10; i++) { // 遍历所有选手
sum = 0;
for (j = 0; j < 10; j++) { // 遍历所有评委
sum += score[i][j]; // 累加分数
}
avg = sum / 10; // 计算平均分
printf("第%d个选手的总分为%d,平均分为%d。\n", i + 1, sum, avg);
}
return 0;
}
```
在这个示例代码中,使用了二维数组 `score` 来存储分数。首先使用两层循环遍历所有的选手和评委,接收用户输入得分并存储到数组中。然后再使用两层循环遍历所有的选手和评委,累加分数并计算平均分,最后输出结果。
在歌星大奖赛中,有 10个评委为参赛的选手打分,分数为1到100分。选手最后得分为去掉一个最高分和一个最低分后其余 8 个分数的平均值。用c语言实现
可以使用数组来保存每个评委的打分,然后对数组进行排序,去掉最高分和最低分,再计算剩下分数的平均值即可。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_JUDGES 10 // 评委数量
#define NUM_SCORES (NUM_JUDGES - 2) // 有效分数数量
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int scores[NUM_JUDGES];
int sum = 0;
int i;
// 输入每个评委的打分
for (i = 0; i < NUM_JUDGES; i++) {
printf("请输入第%d位评委的打分:", i+1);
scanf("%d", &scores[i]);
}
// 对分数进行排序
qsort(scores, NUM_JUDGES, sizeof(int), compare);
// 去掉最高分和最低分后计算平均分
for (i = 1; i < NUM_JUDGES - 1; i++) {
sum += scores[i];
}
printf("选手得分为:%d\n", sum / NUM_SCORES);
return 0;
}
```
注意,这里使用了 `qsort` 函数来对分数进行排序,需要包含头文件 `stdlib.h`。
阅读全文