一、概述
案例:有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除评委中最高分,去除评委中最低分,取平均分。
二、示例图片
三、示例代码
#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; }