问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:score.cpp
*作 者:单昕昕
*完成日期:2014年11月2日
*版 本 号:v1.0
*
*问题描述:在歌手大奖赛中,有若干评委为参赛的选手打分,分数为0~10分。选手最后得分为:去掉一个最高分和一个最低分后,取其余8个分数的平均值。
*程序输入:若干个评委为参赛的选手打分.
*程序输出:选手最后得分为:去掉一个最高分和一个最低分后,取其余分数的平均值。
*/
#include <iostream>
#include <iomanip>
#include <cstdio>
using namespace std;
int main()
{
double s,t,sum=0,max=0,min=10;
int i=1,p;
cout<<"请输入评委的人数:"<<endl;
cin>>p;
cout<<"请输入选手的成绩(0-10):"<<endl;
while(i<=p)
{
cin>>s;
if(s>=0&&s<=10)
{
cout<<"第"<<i<<"位评委给分:"<<s<<"分"<<endl;
sum+=s;
if(max<s)
max=s;
if(min>s)
min=s;
i++;
}
else
{
cout<<"分数不在正确范围内,请检查并请重新输入该选手的成绩(0-10)"<<endl;
continue;
}
}
t=(sum-max-min)/(p-2);
cout<<"减去一个最高分:"<<max<<"分,"<<"减去一个最低分:"<<min<<"分"<<endl;
cout<<"当前选手的最后得分是:"<<t<<"分"<<endl;
char *pt="SUCCESS";
cout<<setfill('*')<<setw(20)<<pt<<"********************"<<endl;
return 0;
}
运行结果:
知识点总结:
运用了continue语句使可以再次输入。用
学习心得:
尝试着使用setfill('*')<<setw(20)来填充,但是右边的我不会自动填充啊,只能手动了。。求指教~!