生成C语言代码:题目描述 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 输入 输入数据有多组,每组占一行,每行的第一个数是n(n>2),表示评委的人数,然后是n个评委的打分。 所有输入数据都在int范围内! 输出 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。 样例输入 3 99 98 97 4 100 99 98 97 样例输出 98.00 98.50
时间: 2023-12-20 11:03:59 浏览: 74
以下是生成的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return *(int *) a - *(int *) b;
}
int main() {
int n;
int scores[100];
while (scanf("%d", &n) == 1) {
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
qsort(scores, n, sizeof(int), cmp);
double sum = 0;
for (int i = 1; i < n - 1; i++) {
sum += scores[i];
}
printf("%.2f\n", sum / (n - 2));
}
return 0;
}
```
代码中使用了 `qsort()` 函数对所有评委的分数进行排序,然后计算去掉最高分和最低分的平均得分。每次读入一组数据并输出对应的结果,直到读入到文件结尾。
相关问题
使用C语言编写程序青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分要求去掉一个最高分和一个最低分写出完整程序代码并给出解释
程序代码:#include <stdio.h>
int main(void){
int score[10], max, min, sum=0;
float average;
printf("请输入10个评委的得分:");
for (int i = 0; i < 10; i++){
scanf("%d", &score[i]);
}
max = score[0];
min = score[0];
for (int i = 0; i < 10; i++){
if (score[i] > max)
max = score[i];
if (score[i] < min)
min = score[i];
sum += score[i];
}
average = (sum - max - min) / 8.0;
printf("去掉一个最高分和一个最低分后,选手的平均得分是:%.2f\n", average);
return 0;
}解释:上面的程序代码用于计算一位歌手参加歌曲大赛后,去掉一个最高分和一个最低分的平均得分。首先,定义一个数组score用于存储10个评委的得分,定义变量max、min和sum用于存储最大值、最小值和总分,定义变量average用于存储最终的平均分。然后,通过for循环,计算出10个评委的最高分、最低分和总分,最后,得出去掉一个最高分和一个最低分后的平均分average。
C语言青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
好的,这个问题是程序计算问题,我可以帮你回答。根据你所描述的情况,我们需要取出其中的最高分和最低分,然后计算剩余分数的平均值。为了方便,我可以用 C 语言编写一个简单的程序来实现这个功能,代码如下:
```
#include <stdio.h>
void sort(int array[], int n) {
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i + 1; j < n; j++) {
if (array[j] < array[min]) {
min = j;
}
}
int temp = array[i];
array[i] = array[min];
array[min] = temp;
}
}
double avg(int array[], int n) {
sort(array, n);
double sum = 0.0;
for (int i = 1; i < n - 1; i++) {
sum += array[i];
}
return sum / (n - 2);
}
int main() {
int scores[10];
printf("请输入 10 个评分:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
}
double average = avg(scores, 10);
printf("这位选手的平均得分为: %.2f\n", average);
return 0;
}
```
你可以将上述代码复制到一个 C 语言的开发环境中进行编译运行。程序运行后会提示你输入 10 个评分,依次输入即可。运行结束后程序会输出这位选手的平均得分,保留两位小数。
希望这个回答能够帮到你,如果你还有其他问题可以继续问我。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)