一、概述
案例:有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除评委中最高分,去除评委中最低分,取平均分。
二、示例图片
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iN4ATN2UTMiJGNzQWYkZmNxYzX3ATMwcTMwIzLcBTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
#include <iostream>
#include <vector>
#include <string>
#include <deque>
#include <algorithm>
#include <ctime>
///案例:有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除评委中最高分,去除评委中最低分,取平均分。
using namespace std;
/**
* 创建选手
* */
class Player{
public:
Player(string name,int score){
this->m_name = name;
this->m_score = score;
}
string m_name;
int m_score;
};
void createPlayer(vector<Player> &v){
string nameSeed = "ABCDE";
for(int i=0;i<5;i++){
string name = "player is: ";
name+=nameSeed[i];
int score = 0;
//初始化选手
Player player(name,score);
v.push_back(player);
}
}
void setScore(vector<Player> &v){
for(vector<Player>::iterator it= v.begin();it!=v.end();it++){
deque<int> d;//存放评委打分的容器
for(int i=0;i<10;i++){
int socre = rand()%41+60;
d.push_back(socre);
}
//排序
sort(d.begin(),d.end());
//去掉最低分和最高分
d.pop_back();
d.pop_front();
//总分
int sum = 0;
for(deque<int>::iterator dit=d.begin();dit!=d.end();dit++){
sum +=*dit;
}
//平均分
int avg = sum/d.size();
it->m_score = avg;
}
}
void showScore(vector<Player> &v){
for(vector<Player>::iterator it=v.begin();it!=v.end();it++){
cout <<"name:"<<it->m_name << " avg:"<< it->m_score<<endl;
}
}
int main(int argc, char const *argv[])
{
//设置随机种子
srand((unsigned int)time(NULL));
//创建5名选手
vector<Player> v;
createPlayer(v);
//打分
setScore(v);
//平均分
showScore(v);
return 0;
}