/*
* 程序的版权和版本声明部分:
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:评委评分系统.cpp
* 作 者:毛通
* 完成日期:2013 年 1月 26 日
* 输入描述:输入十个评委的评分
*/
/*
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。
同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均分)和最不公平(即与平均分的差距最大)的评委,
请编写程序实现。
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i;
double n; //最后得分
double sum=0; //十个分数
double a[10];
//打分
cout << "请十位评委为选手打分 : " << endl;
for(i=0;i<10;i++)
{
cin>>a[i];
}
//求最高分
double max; //求最大值
max=a[0];
for(i=0;i<10;i++)
{
if(max<a[i])
max=a[i];
}
cout<<"最高分"<<max<<endl;
//求最低分
double min; //求最小值
min=a[0];
for(i=0;i<10;i++)
{
if(min>a[i])
min=a[i];
}
cout<<"最低分"<<min<<endl;
//求和然后减去max和min
for(i=0;i<10;i++)//求数组和
{
sum=sum+a[i];
}
cout<<"总分"<<sum<<endl;
n=(sum-max-min)/8;
cout<<"平均分"<<n<<endl;
//最公平(最接近平均分) 最不公平(最不接近平均分)裁判
//再定义一个数组 存放差值(分与平均分的差),求出差值最小者和最大者
double b[10];
for(i=0;i<10;i++)
{
b[i]=fabs(a[i]-n);
}
double max_1; //求最大值
max_1=0;
for(i=0;i<10;i++)
{
if(max_1<b[i])
max_1=b[i];
}
double min_1; //求最小值
min_1=max_1;
for(i=0;i<10;i++)
{
if(min_1>b[i])
min_1=b[i];
}
for(i=0;i<10;i++)
{
if(max_1==b[i])
cout<<"最不公平裁判"<<i+1<<endl;;
if(min_1==b[i])
cout<<"最公平裁判"<<i+1<<endl;
}
return 0;
}
/*
运行结果:
*/