/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:陈丹妮
* 完成日期:2014年 11 月 4日
* 版 本 号:v1.0
*
* 问题描述:歌手大奖赛中,有( )个评委为参赛选手打分,分数为0-10分。
选手最后得分为:去掉一个最高分和一个最低分,
取其余八个分数的平均分。
当评委打的分数不在(0-10)内时,重新输入直到输入的分数在规定范围内;
输入描述: 一个整数,代表了评委数;十个小数,代表了评委打得分数;
* 程序输出:去掉一个最高分和最低分后的平均分;
*/
#include <iostream>
using namespace std;
int main()
{
int n;
double sum=0,min=10,max,x;
char key;
do
{
cout<<"请输入选手的成绩(0<=X<=10):"<<endl; //这里不用输入评委的人数,这是固定的。
for(n=1; n<=7; n++)
{
cout<<"第"<<n<<"位评委给分:";
cin>>x;
while(x>10||x<0)
{
cout<<"第"<<n<<"位评委给分:";
cin>>x;
}
if(max<=x)max=x;
if(min>=x)min=x;
sum=sum+x;
}
sum=(sum-max-min)/7;
cout<<"减去一个最高分:"<<max<<",减去一个最低分:"<<min<<endl;
cout<<"当前选手的最后得分是:"<<sum<<endl;
cout<<"*******************SUCCESS*******************"<<endl;
cout<<"按N退出,其他键继续...Y"<<endl;
cin>>key;
}
while(key!='N'); //这里输入Y后,下一位同学可以输入。如果为N那么结束输入。
return 0;
}
学习心得:还有一种改进方法,看下一片