c++解答:在歌手大奖赛中有10名评委打分,分数采用百分制,歌手的最后得分是:从10位评委的评分中,去掉一个最高分去掉一个最低分,统计其总分,并除以8,试编程计算一个歌手的最后得分。
时间: 2024-02-21 21:56:50 浏览: 130
以下是使用 C++ 语言实现的代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int scores[10];
int total = 0;
cout << "请输入10位评委的评分:" << endl;
// 输入10位评委的评分
for (int i = 0; i < 10; i++) {
cin >> scores[i];
}
// 去掉一个最高分和一个最低分
sort(scores, scores + 10);
for (int i = 1; i < 9; i++) {
total += scores[i];
}
// 统计总分并输出得分
double final_score = total / 8.0;
cout << "歌手的最终得分为:" << final_score << endl;
return 0;
}
```
在上面的代码中,我们首先定义一个包含10个元素的整型数组来保存评委的评分。然后,使用for循环输入10位评委的评分。接着,使用sort函数将评分从小到大排序,并去掉一个最高分和一个最低分。最后,统计总分并除以8,输出得分即可。
注意:这个程序假设输入的评分都是合法的,没有进行错误处理。
相关问题
c++在歌手大奖赛中有10名评委打分,分数采用百分制,歌手的最后得分是:从10位评委的评分中,去掉一个最高分去掉一个最低分, 统计其总分,并除以8,试编程计算一个歌手的最后得分。
下面是使用 C++ 编写的程序,可以计算一个歌手的得分:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int scores[10]; // 存储10名评委的评分
int sum = 0; // 所有评委的得分总和
// 输入10名评委的评分
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "位评委的评分:";
cin >> scores[i];
sum += scores[i];
}
// 去掉一个最高分和一个最低分
sort(scores, scores+10);
sum = sum - scores[0] - scores[9];
// 计算最终得分
float final_score = sum / 8.0;
cout << "该歌手的最终得分为:" << final_score << endl;
return 0;
}
```
程序首先定义一个数组 `scores`,用来存储10名评委的评分,然后使用 `for` 循环依次输入每个评委的评分,并将评分累加到 `sum` 变量中。
接下来,程序使用 `sort` 函数对评分数组进行排序,然后去掉一个最高分和一个最低分,最后计算最终得分并输出。注意,计算最终得分时需要将除数 `8.0` 定义为浮点数,否则得到的结果会被截断为整数。
C++编写一个在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。如果已知每个评委的评分,求该选手的得分。
在C++中,你可以通过以下几个步骤来实现这个功能:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
double calculateScore(std::vector<int>& scores) {
// 检查输入是否合法
if (scores.empty() || scores.size() != 10) {
std::cerr << "Invalid input. There should be exactly 10 scores." << std::endl;
return 0;
}
// 排序评委分数
std::sort(scores.begin(), scores.end());
// 取出最高分和最低分
int highest = scores.back();
int lowest = scores.front();
// 去掉最高分和最低分
scores.erase(scores.end() - 1);
scores.erase(scores.begin());
// 计算并返回剩余评委的平均分
double average = static_cast<double>(std::accumulate(scores.begin(), scores.end(), 0)) / scores.size();
return average;
}
int main() {
std::vector<int> scores = {75, 90, 85, 92, 88, 80, 95, 87, 83, 86}; // 举例评委评分
double finalScore = calculateScore(scores);
std::cout << "The singer's final score is: " << finalScore << std::endl;
return 0;
}
```
在这个程序里,我们首先检查评分数组的有效性,然后对数组进行排序,取出最高分和最低分,再从原数组中移除这两个值,最后计算剩下的8个评分的平均分作为最终得分。
阅读全文