五名比赛选手,有10个评委打分,去除最低分与最高分,去平均分
#include<iostream> #include<algorithm> #include<string> #include<deque> #include<vector> using namespace std; //先创立一个选手类 class person { public: person(string name, int score) { this->m_Name = name; this->m_Score = score; } string m_Name;//姓名 int m_Score;//平均分 }; void creat(vector<person>& v) { string names = "ABCDE"; for (int i = 0; i < 5; i++) { string name = "选手"; name += names[i]; int score = 0; person p(name, score); v.push_back(p); } } void set(vector<person>& v) { for (vector<person>::iterator it = v.begin(); it != v.end(); it++) { deque<int>d; for (int i = 0; i < 10; i++) { int score = rand() % 41 + 60;//随机数种子,也可以自己输入分数 d.push_back(score); } 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 show(vector<person>& v) { for (vector<person>::iterator it = v.begin(); it != v.end(); it++) { cout << it->m_Name << it->m_Score << endl; } } int main() { vector<person>v; creat(v); set(v); show(v); return 0; }
版权声明:本文为weixin_64443786原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。