链接:https://ac.nowcoder.com/acm/contest/61132/J 来源:牛客网 河南农业大学信管学院举办一年一度的合唱比赛,目前你是评委之一,剩下还有其他的n位评委,给定一个正整数n和n个正整数表示这n个评委给目前在表演的团队的分数,评分规则为在所有评委(包括你)的分数中去掉一个最高分和最低分,剩下的取平均值(总共n-1个值),现在你可以参与评分(1~100之间的整数),问最终结果会在什么区间内,用两个数表示这个区间,结果保留6位小数。 c++代码生成
时间: 2024-04-13 11:26:06 浏览: 181
以下是使用C++编写的解决方案:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
std::pair<double, double> score_range(int n, std::vector<int>& scores, int your_score) {
int max_score = *max_element(scores.begin(), scores.end()); // n个评委给出的分数中的最高分
int min_score = *min_element(scores.begin(), scores.end()); // n个评委给出的分数中的最低分
double avg_max = round((max_score + your_score) / static_cast<double>(n - 1) * 1000000) / 1000000; // 平均值的最大值
double avg_min = round((min_score + your_score) / static_cast<double>(n - 1) * 1000000) / 1000000; // 平均值的最小值
return std::make_pair(avg_min, avg_max);
}
int main() {
int n; // 剩下的评委人数
std::vector<int> scores;
std::cin >> n;
for (int i = 0; i < n; i++) {
int score;
std::cin >> score;
scores.push_back(score);
}
int your_score;
std::cin >> your_score;
std::pair<double, double> result = score_range(n, scores, your_score);
std::cout << std::fixed << std::setprecision(6) << result.first << " " << result.second << std::endl;
return 0;
}
```
请将上述代码保存为一个.cpp文件,然后使用C++编译器进行编译运行。在运行时,首先输入剩下的评委人数n,然后依次输入n个评委给出的分数,最后输入你给出的分数。
注意:上述代码是根据题目描述编写的,但在实际使用中,应该添加输入数据的验证和错误处理机制。
阅读全文