用C语言编写程序实现假定某一大型比赛中有10名裁判同时为一名体操运动员打分,编写一个程序,输入这10名裁判的打分,输出去掉一个最高分和一个最低分后该运动员的平均得分。
时间: 2024-02-29 11:52:40 浏览: 97
下面是使用C语言编写的程序,可以实现该功能:
```c
#include <stdio.h>
int main()
{
float score[10];
float max = 0, min = 10, sum = 0;
for (int i = 0; i < 10; i++)
{
scanf("%f", &score[i]);
if (score[i] > max)
max = score[i];
if (score[i] < min)
min = score[i];
sum += score[i];
}
printf("%.2f\n", (sum - max - min) / 8);
return 0;
}
```
程序中首先定义了一个长度为10的数组来存储10名裁判的打分。接着用for循环进行输入,并在输入的同时记录最高分和最低分。最后输出除去最高分和最低分的8个分数的平均值即可。需要注意的是,输出结果需要保留两位小数,这里使用了printf函数中的格式控制符"%.2f"实现。
相关问题
假定某一大型比赛中有10名裁判同时为一名体操运动员打分,用c语言编写一个程序,输入这10名裁判的打分,输出去掉一个最高分和一个最低分后该运动员的平均得分。
在C语言中,我们可以创建一个简单的控制台程序来处理这个问题。首先,我们需要从用户那里获取10个分数,然后存储在一个数组中。接着找出最高分和最低分并删除它们,最后计算剩余8个分数的平均值。以下是步骤和相应的代码片段:
```c
#include <stdio.h>
int main() {
int scores[10], i, max_score = 0, min_score = INT_MAX;
// 输入10个裁判分数
printf("请输入10个裁判的打分:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
}
// 删除最高分和最低分
for (i = 0; i < 10; i++) {
if (scores[i] != max_score && scores[i] != min_score) {
average_scores++; // 计算有效分数的数量
total_scores += scores[i]; // 累加有效分数
}
}
// 计算平均分
double average = (double)total_scores / average_scores;
printf("去掉最高分和最低分后的平均得分是:%.2f\n", average);
return 0;
}
```
在这个程序中,我们使用`scanf`读取分数,用两个变量`max_score`和`min_score`分别记录最大和最小值。然后遍历数组,如果当前分数不是最大或最小,就将其加入到有效分数总数(`average_scores`)中,并累加分数。最后,计算并输出平均值。
假定某一大型比赛中有10名裁判同时为一名体操运动员打分,编写一个程序,输入这10名裁判的打分,输出去掉一个最高分和一个最低分后该运动员的平均得分。在一行中顺序输入10名裁判的打分,其间以1个空格分隔。顺序输出最高分,最低分,平均分,保留3位小数,其间以1个空格分隔,用C语言实现
好的,以下是用 C 语言实现的程序:
```c
#include <stdio.h>
int main()
{
float scores[10]; // 用一个数组来存储10名裁判的打分
// 循环读入10名裁判的打分
for (int i = 0; i < 10; i++) {
scanf("%f", &scores[i]);
}
// 找到最高分和最低分的下标
int max_index = 0, min_index = 0;
for (int i = 1; i < 10; i++) {
if (scores[i] > scores[max_index]) {
max_index = i;
}
if (scores[i] < scores[min_index]) {
min_index = i;
}
}
// 去掉最高分和最低分
float sum_score = 0;
for (int i = 0; i < 10; i++) {
if (i != max_index && i != min_index) {
sum_score += scores[i];
}
}
// 计算平均得分
float avg_score = sum_score / 8;
// 输出最高分、最低分和平均分
printf("%.3f %.3f %.3f\n", scores[max_index], scores[min_index], avg_score);
return 0;
}
```
这个程序会首先让你输入10名裁判的打分,然后找到最高分和最低分的下标,去掉最高分和最低分,最后计算并输出最高分、最低分和平均分,保留3位小数。
阅读全文