3位评委给10位选手打分

假设某大赛有3位评委和10位参赛选手,每位评委将会对10位选手进行打分。打分的形式不限,可以让一个评委一次打完10个人的分数然后轮到下一位评委打分直到结束,也可以让三个评委轮流给选手打分,打完第一位选手的分再轮流给第二位选手打分,以此类推直到结束。两种打分方式具体如下:

打分方式一 :

1号评委,请您按顺序给10位选手打分,按回车键分隔。

2号评委,请您按顺序给10位选手打分,按回车键分隔。

3号评委,请您按顺序给10位选手打分,按回车键分隔。

打分方式二:

1号选手表演结束,请三位评委录入您的分数,按回车键分隔。

2号选手表演结束,请三位评委录入您的分数,按回车键分隔

......

10号选手表演结束,请三位评委录入您的分数,按回车键分隔。

试编程完成以下具体考核内容:

(1)请你利用C语言中的数组编写一个程序,要求能够统计并显示每位参赛选手的平均得分是多少。

(2)求出平均成绩最高的前三名同学的序号。

(3)在程序开始运行时让用户自由决定有几位参赛学生,几位评委。

(4)在程序开始运行时确定评委评分的方式:可选择5分制、10分制或者100分制甄别用户输入的数字,对于不合理的输入,如:评委在5分制输入了大于5或者小于1,程序能够自动提示错误,并马上让评委再次输入。

(5)见案例描述中说明了两种打分方式。程序要能实现两种打分模式,并在程序开始运行时让用户选择以哪种方式打分。

附参考提示信息:

请输入学生数量(小于等于20):

请输入评委数量(小于等于10):

请输入评分模式(1/2),1:第一个评委打完所有分数后下一个评委再打分;2:几个评委轮流给每个同学打分

请输入分数制式(5/10/100),5:五分制;10:十分制;100:百分制

1号评委,请您按顺序给5位选手打分,按回车键分隔.

2号评委,请您按顺序给5位选手打分,按回车键分隔.

3号评委,请您按顺序给5位选手打分,按回车键分隔.

注:测试数据用了3位评委,5位选手

参考:

#include <stdio.h>

/*
    设计一个“卡拉OK大赛评分系统”
    本程序启动后,会提示“卡拉OK大赛正式开始”,然后请10位裁判分别打分,
    最后去掉一个最高分和一个最低分,将其余分数的平均分作为选手的最后得分
*/ 
void main(){
    float a[10]; //保存10个评委的分数 
    int i;
    float max;//保存最高分
    float min;//保存最低分
    float avg=0;//保存10个评委的平均分
    //显示界面
    printf("\t\t\t*****************************************************\n");
    printf("\t\t\t*                                                   *\n");
    printf("\t\t\t*               卡拉OK大赛评分系统                  *\n");
    printf("\t\t\t*                                                   *\n");
    printf("\t\t\t*****************************************************\n");
     
    //1.输入10个评委的分数
    for(i=0;i<10;i++){
        printf("\t\t\t请输入第%d个评委的打分:",i+1);
        //获取从键盘输入的分数 
        scanf("%f",&a[i]);
    } 
    //2.对max,min赋初值
    max = a[0];
    min = a[0]; 
    avg = a[0];
    //3.求最高分,最低分,总分
    for(i=1;i<10;i++){
        //求最高分
        if(max<a[i]){
            max = a[i];
        } 
        //求最低分
        if(min>a[i]){
            min = a[i];
        } 
        //求总分
        avg += a[i]; 
    } 
    //求平均分 = (总分-最高分-最低分 )/8
    avg = (avg - max - min)/8;
    //4.输出结果
    printf("去掉一个最高分%0.2f,去掉一个最低分%0.2f,最后得分是:%0.2f",max,min,avg); 
     
}