课程实践:大奖赛计分

原创 2017年01月03日 15:02:02

1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。

要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数调用时,需要将输入的评委人数n作为实参。

2)进一步完善(1)的程序。输入时,难免有录入错误发生,如果输入的成绩不在0-10之间,要求用户立即重新输入(在函数calScore中修改);一次运行程序只计算一位选手成绩太麻烦,要求输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输入的不是Nn,可以为下一位选手计算成绩(在main函数中进行控制即可)。

 

 

 

#include <stdio.h>
float cabscore(float score)//返回值为小数形式,评委打分是小数;
{
    if(score>=0&&score<=10)
        score=score;
    else
    {

        printf("请重新输入分数");
        scanf("%f",&score);
        cabscore(score);
    }
    return score;
}
void calscore(int n)
{
    int i=1;
    //i为评委编号
    float   max=-1;
    float   min=11;
    float ave=0,score,sum=0;
    printf("请输入选手的成绩(0-10)\n");
    do
    {
        printf("第 %d 位评委给分:", i);
        scanf("%f", &score);
        cabscore(score);//
        sum+=score;
        if(max<score)
            max=score;
        if(min>score)
            min=score;
        i++;
    }
    while(i<=n);
    //计算最终得分
    ave = (sum-max-min)/(n-2);
    printf("减去一个最高分: %.3f\n", max);
    printf(", 减去一个最低分: %.3f\n", min);
    printf("当前选手的最后得分是:%.3f\n", ave);
}

int main( )
{
    int i,n;
    double ave, score, sum, max, min;
    char choice;  //用于接受用户选择,字符型是合适的
    printf("请输入评委人数");
    scanf("%d",&n);
    do     //计算选手的成绩,至少1次,用do while可以做到
    {

        calscore(n);
        printf("******************* SUCCESS ***********************\n");
        printf("按 N 退出,其他键继续....");
        fflush(stdin);   //将输入缓冲清空,否则getchar()会读入之前录入中的回车等符号
        choice=getchar();
    }
    while(choice!='N' && choice!='n');  //输入大小写N皆可
    return 0;
}

C++程序设计课程主页-2015级

【前言】  本文专为烟台大学计154-1.2班《C++程序设计》课程建设,用于组织和展示实践性学习需要的材料和成果。借助于博客,我们将继续将”积累代码行“的实践进行下去,详见论文《利用博客提交作业的程...
  • sxhelijian
  • sxhelijian
  • 2016年02月28日 11:32
  • 5124

程序设计基础(C语言)课程主页-2016级

时间很快,2016级的小鲜肉们已经在猜测老贺长什么样子了。   从在线作业到翻转课堂,几届的学生跟着我受了不少苦。话虽这么说,并不代表2016级的就要轻松了(老贺虚伪到底!)。不过,苦孩子们,享受吧...
  • sxhelijian
  • sxhelijian
  • 2016年09月16日 21:36
  • 4086

《C语言及程序设计》实践参考——歌手大奖赛计分函数版

返回:贺老师课程教学链接  项目要求【项目2-歌手大奖赛计分函数版】(1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其...
  • sxhelijian
  • sxhelijian
  • 2015年04月23日 22:10
  • 2128

C语言期末课程设计 2.大奖赛计分系统

问题及代码: /*烟台大学计算机学院 题目描述:(1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。 选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。...
  • JYL1159131237
  • JYL1159131237
  • 2016年12月29日 20:23
  • 749

C语言课程设计:歌手大奖赛计分程序

1. 题目描述 编写一个程序,用户输入评委人数和分数后,程序可以计算去掉一个最高分和最低分后的平均成绩。可多次输入选手成绩,输入N时退出程序。 2. 源代码 #include #inclu...
  • ak644928128
  • ak644928128
  • 2017年01月04日 16:32
  • 525

课程设计<2>---歌手大奖赛计分程序

Copyright (c) 2016, 烟台大学计算机与控制学院 All ringts reserved. 文件名称:歌手大奖赛计分程序 作 者:王兴振 完成日期:2016年1月5日 版 本 号:未知...
  • wxz1814
  • wxz1814
  • 2017年01月05日 09:30
  • 384

第10周上机实践项目4——大奖赛计分

问题及代码 /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:辛彬 * ...
  • blue_skyrim
  • blue_skyrim
  • 2014年11月03日 20:57
  • 1044

第9周OJ实践 大奖赛计分

问题及代码: /*烟台大学计算机学院 题目描述:在歌手大奖赛中,有9位评委为参赛的选手打分,分数为0~10分。选手最后得分为: 去掉一个最高分和一个最低分后,取其余7个分数的平均值。 输入:9位评委...
  • JYL1159131237
  • JYL1159131237
  • 2016年10月29日 17:38
  • 167

《C语言及程序设计》实践参考——大奖赛计分(续一)

返回:贺老师课程教学链接  项目要求【项目1:大奖赛计分(续一)】在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。请在大奖赛计分程序基础上,增加功能,若用户输入不在0-10范围内,则立...
  • sxhelijian
  • sxhelijian
  • 2015年04月18日 15:54
  • 1581

寒假实践之—大奖赛计分系统

 *copyright (c) 2014, 烟台大学计算机学院. *All rights reserved. *文件名称:test.cpp *作者:陆云杰 *完成日期:2...
  • lu_yunjie
  • lu_yunjie
  • 2015年03月06日 22:42
  • 327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:课程实践:大奖赛计分
举报原因:
原因补充:

(最多只允许输入30个字)