10名评委给9名选手打分,10名评委给每个选手打完分后去掉最高分和最低分并算出每个选手的平均分。打分采用随机数形式。
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<deque>
#include<ctime>
using namespace std;
class person {
public:
string name;
int score;
person(string name, int score) {
this->name = name;
this->score = score;
}
};
void cretep(vector<person>& p) {
string s1 = "123456789";
for (int i = 0; i < 9; i++) {
string s2 = "选手";
s2 += s1[i];
int score = 0;
person p1(s2, score);
p.push_back(p1);
}
}
void dafen(vector<person> &p) {
for (vector<person>::iterator it = p.begin(); it != p.end(); it++) {
deque<int>a;
for (int i = 0; i < 10; i++) {
int x = rand() % 41 + 60;
a.push_back(x);
}
sort(a.begin(), a.end());
a.pop_back();
a.pop_front();
int sum = 0;
for (deque <int> ::iterator d1 = a.begin(); d1 != a.end(); d1++) {
sum += *d1;
}
int avg = sum / a.size();
(*it).score = avg;
}
}
int main() {
srand((unsigned int)time(NULL));
vector<person> p;
cretep(p);
dafen(p);
for (vector<person>::iterator it = p.begin(); it != p.end(); it++) {
cout << "名字为" << it->name << "分数为" << it->score << endl;
}
}
1150

被折叠的 条评论
为什么被折叠?



