题目描述
给定一个正整数 �n,表示有 �n 位评委对一名运动员的表现打出了分数。已知:
- 如果去掉一个最高分,平均得分为 a;
- 如果不去掉任何分数,平均得分为 b;
- 如果去掉一个最低分,平均得分为 c。
如果同时去掉一个最高分及一个最低分,平均得分应该是多少?
输入格式
第一行:单个整数表示 n;
第二行:三个浮点数表示 a,b 与 c,每个浮点数的数字不超过 88 位。
输出格式
一个浮点数:表示去掉一个最高分及一个最低分之后的平均分,四舍五入保留两位小数。
数据范围
- 3≤n≤10003≤n≤1000。
- 1≤a≤b≤c≤1001≤a≤b≤c≤100。
样例数据
输入:
3
40.00 60.00 85.00
输出:
70.00
说明:
三名评委的打分为10.00, 70.00, 100.00
解析:
本题关键点:先算出不去掉任何分数的总分,再算出最高分数和最低分数,又再算出同时去掉一个最高分及一个最低分,平均得分,最后输出四舍五入保留两位小数,代码如下:
#include <iostream>
#include<iomanip>
using namespace std;
int main(){
int n;
double a,b,c,max,min,sum,avg;
cin>>n;
cin>>a>>b>>c;
if(n>=3){
if(1<=a<=100 & 1<=b<=100 & 1<=c<=100){
sum=b*n;
max=sum-a*(n-1);
min=sum-c*(n-1);
avg=(sum-max-min)/(n-2);
}
}else{
avg=0;
}
//输出保留2位小数
cout<<fixed<<setprecision(2)<<avg<<endl;
return 0;
}
文章介绍了如何通过编程解决一个实际问题,即给定评委对运动员分数的场景,计算在去掉一个最高分和一个最低分后剩余评委的平均得分。给出了C++代码示例和数据范围说明。
1097

被折叠的 条评论
为什么被折叠?



