请你用c++编写一个关于评分的平均分函数
时间: 2024-02-09 22:10:46 浏览: 80
好的,以下是一个简单的 C++ 函数,使用数组作为输入参数,计算出平均分并返回结果:
```c++
#include<iostream>
using namespace std;
double average_score(int scores[], int size) {
double sum = 0;
for(int i=0; i<size; i++) {
sum += scores[i];
}
return sum / size;
}
int main() {
int scores[] = { 85, 90, 78, 92, 88 };
int size = sizeof(scores)/sizeof(scores[0]);
double avg = average_score(scores, size);
cout << "Average score is: " << avg << endl;
return 0;
}
```
这个函数接收一个整数数组 `scores` 和数组大小 `size` 作为参数,遍历数组并将所有元素相加,最终返回平均分。在 `main` 函数中,我们定义一个测试用例数组 `scores`,然后计算平均分并输出结果。
相关问题
C++编写函数,实现评委打分,统计时去掉一个最高分和一编写函数,实现评委打分,统计时去掉一个最高分和一 个最低分,其余分数的平均分即是最后得分。个最低分,其余分数的平均分即
在C++中,我们可以创建一个函数来计算评委打分的平均分,同时排除最高分和最低分。这里是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
double calculateScore(std::vector<int> scores) {
// 检查评分向量是否为空或只有一个元素
if (scores.empty() || scores.size() == 1) {
std::cout << "Invalid input, cannot remove highest and lowest score." << std::endl;
return 0; // 或者返回错误处理的结果
}
// 排序分数
std::sort(scores.begin(), scores.end());
// 计算非最高和最低分的总和
int sum = 0;
for (int i = 1; i < scores.size() - 1; i++) { // 避免第一个和最后一个
sum += scores[i];
}
// 计算并返回平均分
double average = static_cast<double>(sum) / (scores.size() - 2);
return average;
}
int main() {
std::vector<int> scores = {85, 90, 95, 88, 92};
double result = calculateScore(scores);
std::cout << "Final score after removing highest and lowest: " << result << std::endl;
return 0;
}
```
这个函数`calculateScore`接受一个整数向量作为输入,对它们进行排序,然后计算除了两端的最高分和最低分之外所有分数的平均值。注意,由于我们直接修改了原数组,所以这不是一个真正的“安全”版本,实际应用中你可能需要复制一份副本来进行操作。
描述 学校举办歌手大赛,每个选季由n名评委进行打 分,然后在所有评分中去掉一个最高分和一个 最低分,剩下的n-2个评分的平均值,即为该选手的最终得分。 编写程序实现:输入第一行指定n的值,从第二 行开始每行输入一个评委的打分(共n行,满分 10分),按照上述计算选手的最终得分,保留一位小数输出。用c++
以下是实现该程序的代码:
```c++
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int main() {
int n;
cin >> n;
double scores[n];
for (int i = 0; i < n; i++) {
cin >> scores[i];
}
sort(scores, scores + n);
double sum = 0;
for (int i = 1; i < n - 1; i++) {
sum += scores[i];
}
double avg_score = sum / (n - 2);
cout << fixed << setprecision(1) << avg_score << endl;
return 0;
}
```
程序首先读取评委数量n和每个评委的打分,将这些分数存储在数组中,并使用sort函数对数组进行排序。接下来,程序计算所有分数的总和,但排除最高分和最低分,最后除以n-2,得出选手的最终得分。最后,程序使用fixed和setprecision函数保留一位小数输出选手的最终得分。
阅读全文