用c语言编写程序:青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去掉一 个最高分和一个最低分)。
时间: 2024-05-01 15:18:24 浏览: 28
好的,这是一个关于编程的问题。这位参赛选手的平均得分可以这样求:先输入10个评委打的分数,对分数进行排序,去掉最高分和最低分,然后求平均值。您可以参考下面的伪代码:
```
score[10] // 储存10个评委打的分数
sum = 0 // 分数总和
max_score = 0 // 最高分
min_score = 100 // 最低分
// 输入分数
for i in 0 to 9 do
input score[i]
// 求分数总和和最高分最低分
for i in 0 to 9 do
if score[i] > max_score then
max_score = score[i]
end if
if score[i] < min_score then
min_score = score[i]
end if
sum = sum + score[i]
// 去掉最高分和最低分,求平均值
avg_score = (sum - max_score - min_score) / 8.0
// 输出平均得分
print avg_score
```
希望这可以帮助您解决问题。
相关问题
用c语言数组方法写青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去掉一 个最高分和一个最低分)
以下是用 C 语言数组方法编写的青年歌手参加歌曲大奖赛的程序,其中使用了选择排序算法来去掉最高分和最低分,并计算平均得分。
```c
#include <stdio.h>
#define N 10 // 评委人数
int main() {
int scores[N];
int sum = 0;
// 输入评委的打分
for (int i = 0; i < N; i++) {
printf("请输入评委%d的打分:", i+1);
scanf("%d", &scores[i]);
}
// 使用选择排序算法去掉最高分和最低分
for (int i = 0; i < N-1; i++) {
int index = i;
for (int j = i+1; j < N; j++) {
if (scores[j] > scores[index]) {
index = j;
}
}
int temp = scores[i];
scores[i] = scores[index];
scores[index] = temp;
}
// 计算总分
for (int i = 1; i < N-1; i++) {
sum += scores[i];
}
// 计算平均分
float average = (float)sum / (N-2);
// 输出结果
printf("该选手的平均得分为:%.2f\n", average);
return 0;
}
```
程序运行后,会依次提示输入 10 个评委的打分,然后计算出去掉一个最高分和一个最低分后的总分,最后求出平均得分并输出。
c语言 青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去掉一 个最高分和一个最低分)
```
#include <stdio.h>
#include <stdlib.h>
#define NUM_OF_JUDGES 10
int cmp_int(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
int scores[NUM_OF_JUDGES];
int sum = 0;
// 输入10个评委的打分
printf("请输入10个评委的打分:\n");
for (int i = 0; i < NUM_OF_JUDGES; i++) {
scanf("%d", &scores[i]);
}
// 排序
qsort(scores, NUM_OF_JUDGES, sizeof(int), cmp_int);
// 去掉最高分和最低分
for (int i = 1; i < NUM_OF_JUDGES - 1; i++) {
sum += scores[i];
}
// 输出平均得分
printf("该选手的平均得分为:%.2f\n", (float)sum / (NUM_OF_JUDGES - 2));
return 0;
}
```