您的位置:首页 > 其它

第10周项目4大奖赛计分(可修正错误可控评委数可多次使用的终极版)

2014-11-03 10:27 190 查看
问题及代码:



/* 
*Copyright (c)2014,烟台大学计算机与控制工程学院 
*All rights reserved. 
*文件名称:score.cpp 
*作    者:单昕昕 
*完成日期:2014年11月3日 
*版 本 号:v1.0 
* 
*问题描述:在歌手大奖赛中,有若干评委为参赛的选手打分,分数为0~10分。选手最后得分为:去掉一个最高分和一个最低分后,取其余分数的平均值。 
*程序输入:若干个评委为参赛的选手打分. 
*程序输出:选手最后得分为:去掉一个最高分和一个最低分后,取其余分数的平均值。 
*/  
#include <iostream>
#include <iomanip>
#include <cstdio>
using namespace std;
int main()
{
    char anykey;
    do
    {
        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;
        cout<<"按“N”键退出,其他键继续执行……";
        cin>>anykey;
        cout<<endl;
    }
    while((anykey!='N')&&(anykey!='n'));
    return 0;
}




运行结果:










知识点总结:

加入了do-while循环体的使用。还有按“N”键退出,其他键继续执行……的高大上玩法。



学习心得:

do-while语句一定要在do后面包含所有想要重新循环使用的语句,我一开始把定义变量的语句放在了外面,导致不能按我自己想要的方式循环使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: