您的位置:首页 > 其它

歌星大奖赛

2009-03-12 21:11 155 查看
/***************************************************************/
* Copyright (c) 2009 eryar All rights reserved.                 *
*                                                               *
* File    :  Main.CPP                                           *
* Date    :  2009-03-11  21:12                                  *
* Author  :  eryar@163.com                                      *
*                                                               *
* Description:                                                  *
*    在歌星大奖赛中,  有10个评委为参赛选手打分, 分数为1到100分. *
*  选手最后得分为: 去掉一个最高分和一个最低分, 其余八个分数的平 *
*  均数.														*
*                                                               *
/***************************************************************/

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
int		iScore	 = 0;
int		iMaxScore= 0;
int		iMinScore= 100;
int		iAverage = 0;

int		iReferee[10];

const	int	iNumber	=	10;

for (int i=0; i<iNumber; ++i) {
cout<<"Referee "<<i+1<<" score : ";
cin>>iScore;

iReferee[i] = iScore;

iAverage += iScore;

if (iScore > iMaxScore)
iMaxScore = iScore;
if (iScore < iMinScore)
iMinScore = iScore;
}

cout<<"Canceled the max score : "<<iMaxScore<<endl;
cout<<"Canceled the min score : "<<iMinScore<<endl;

iAverage = (iAverage - iMaxScore - iMinScore)/(iNumber - 2);
cout<<"         Average score : "<<iAverage<<endl;

//-------------------------------------------------
// 在十个评委中找出最公平即评分最接近平均分和最不
// 公平即与平均分的差距最大的评委.
cout<<"---------------Referee---------------"<<endl;
//int		iFair	=	0;
int		iUnfair	=	0;
int		iGap	=	2;		//定义接近程度

//-------------------------------------------------
// 最不公平的
if( (iMaxScore - iAverage) > (iMinScore - iAverage))
iUnfair	=	iMaxScore;
else
iUnfair	=	iMaxScore;

cout<<"The most unfair referee : "<<endl;
for (i=0; i<iNumber; ++i) {
if (iReferee[i] == iUnfair)
cout<<"Referee "<<i+1<<" : "<<iReferee[i]<<endl;
}

//-------------------------------------------------
// 最公平的
cout<<"The most fair referee : "<<endl;
int		iTopLine	=	iAverage + iGap;
int		iLowLine	=	iAverage - iGap;

for (i=0; i<iNumber; ++i) {
if ((iReferee[i] > iLowLine) && (iReferee[i] < iTopLine))
cout<<"Referee "<<i+1<<" : "<<iReferee[i]<<endl;
}

cout<<"---------------Referee---------------"<<endl;

return 0;
}

/*--------TEST-----------
Referee 1 score : 90
Referee 2 score : 91
Referee 3 score : 93
Referee 4 score : 94
Referee 5 score : 90
Referee 6 score : 99
Referee 7 score : 97
Referee 8 score : 92
Referee 9 score : 91
Referee 10 score : 95
Canceled the max score : 99
Canceled the min score : 90
Average score : 92
---------------Referee---------------
The most unfair referee :
Referee 6 : 99
The most fair referee :
Referee 2 : 91
Referee 3 : 93
Referee 8 : 92
Referee 9 : 91
---------------Referee---------------
--------TEST-----------*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: