案例描述
有2名选手:选手AB,5个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。
实现步骤
1.执行for循环嵌套,第一层for循环访问每个选手,第二层for循环可以把5个评委打分存到deque容器中
2. sort算法对deque容器中分数排序,去除最高和最低分
3. deque容器遍历一遍,累加总分
4. 获取平均分
#include <iostream>
using namespace std;
#include <string>
#include<algorithm>
#include<deque>
//总分数组
int all_arr[2];
//平均分数组
int aver_arr[2];
void show01(int* arr, int size)
{
for (int i = 0; i < size; i++)
{
cout << "第" << i + 1 << "个选手的平均分为:" << arr[i]<<endl;
}
}
void test01()
{
deque<int> d;
for (int j = 0; j <2; j++)
{
int k = 0;
cout << "请各位评委对第" << j + 1 << "个选手打分:" << endl;
for (int i = 0; i < 5; i++)
{
cout << "请第" << i + 1 << "个评委打分:" << endl;
cin >> k;
d.push_back(k);
}
sort(d.begin(), d.end());//排序
cout << "第" << j + 1 << "个选手的最高分是:" << d.back() << endl;
cout << "第" << j + 1 << "个选手的最低分是:" << d.front() << endl;
system("pause");//按任意键继续
system("cls");//清屏操作
d.pop_front();//去掉最低分
d.pop_back();//去掉最高分
all_arr[j] = 0;
for (int i = 0; i < d.size(); i++)
{
all_arr[j] += d[i];//算总分
}
aver_arr[j] = all_arr[j] / d.size();
}
显示总分
//for (int i = 0; i < 2; i++)
//{
// cout << all_arr[i] << " ";
//}
show01(aver_arr, 2);//显示平均分
}
int main() {
test01();
system("pause");
return 0;
}