案例代码:
#include<iostream>
using namespace std;
#include<string>
#include<ctime>
#include<vector>
#include<deque>
#include<algorithm>
// 评委打分
/**
* Author:晚风亦是救赎
* Create:2021/10/16
*
* 案例描述:
* 有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分
*/
// 打印平均分方法
void printAvg(deque<int> d) {
d.pop_front(); // 去除最低分
d.pop_back(); // 去除最高分
int avg = 0;
for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) {
avg += *it;
}
cout << (avg / d.size()) << endl;
}
void test() {
// 创建五名选手的容器
vector<vector<int>> players;
// 模拟10名评委打分 并将选手添加到容器中
srand(time(0));
for (int k = 0; k < 5; k++) {
vector<int> temp;
for (int i = 0; i < 10; i++) {
// rand() % 100 获取100之内的随机数
temp.push_back(rand() % 40 + 60);
}
players.push_back(temp);
}
for (int i = 0; i < players.size(); i++) {
deque<int> temp(players.at(i).begin(), players.at(i).end()); // 拿到每个vector容器中的数据
sort(temp.begin(), temp.end()); // 使用sort容器排序
cout << (i + 1) << "号选手的平均分是:";
printAvg(temp);
}
}
int main() {
test();
system("pause");
return 0;
}
(g_g) <- (_ o _)