用c语言假定某一大型比赛中有10名裁判同时为一名体操运动员打分,编写一个程序,输入这10名裁判的打分,输出去掉一个最高分和一个最低分后该运动员的平均得分。 输入格式: 在一行中顺序输入10名裁判的打分,其间以1个空格分隔。
时间: 2024-03-01 10:54:52 浏览: 54
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int scores[10];
int i, sum = 0, max = 0, min = 100;
for (i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
sum += scores[i];
}
sum = sum - max - min;
printf("%.2f\n", (float)sum / 8.0);
return 0;
}
```
程序首先定义了一个 `scores` 数组用于存储 10 名裁判的打分。然后使用循环读入 10 名裁判的打分,并同时求出最高分和最低分。同时累加所有打分的和,最后从总和中减去最高分和最低分,剩下的分数求平均值即为运动员的得分。
需要注意的是,这里采用了类型转换的方式将整型数相除得到浮点型数,避免了整数除法的舍入问题。
希望这个程序能够帮助您。
相关问题
编写一段c语言程序,假定某一大型比赛中有10名裁判同时为一名体操运动员打分,编写一个程序,输入这10名裁判的打分,输出去掉一个最高分和一个最低分后该运动员的平均得分。
好的,下面是符合您要求的 C 语言程序:
```c
#include <stdio.h>
#define JUDGES_NUM 10 // 裁判人数
int main() {
float scores[JUDGES_NUM]; // 存放裁判打分的数组
float sum = 0, max = 0, min = 10; // sum 记录总分,max 和 min 分别记录最高分和最低分
float avg; // 平均得分
// 输入每个裁判的分数
for (int i = 0; i < JUDGES_NUM; i++) {
printf("请输入第 %d 个裁判的分数:", i + 1);
scanf("%f", &scores[i]);
// 计算总分、最高分和最低分
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 去掉最高分和最低分后计算平均得分
sum = sum - max - min;
avg = sum / (JUDGES_NUM - 2);
printf("该选手的平均得分为:%.2f\n", avg);
return 0;
}
```
程序运行后,会提示您输入 10 个裁判的分数,输入完毕后,程序会自动去掉最高分和最低分,然后计算平均得分并输出。注意,程序中 `JUDGES_NUM` 宏定义需要设置为 10,即裁判人数。
假定某一大型比赛中有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位小数。