课程设计—歌手大奖赛

来源:互联网 发布:sql怎么设置主键 编辑:程序博客网 时间:2024/05/05 14:04

问题与代码:

文件名称:

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

要求利用一个函数voidcalScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数调用时,需要将输入的评委人数n作为实参。输入时,难免有录入错误发生,如果输入的成绩不在0-10之间,要求用户立即重新输入(在函数calScore中修改);一次运 行程序只计算一位选手成绩太麻烦,要求输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输入的不是N或n,可以为下 一位选手计算成绩(在main函数中进行控制即可)。

作者:邓哲

时间:2016年12月30日13:54:56

#include <stdio.h>void calScore(int n);int main(){    int n;    char key;    printf("请输入评委的人数:");    scanf("%d",&n);    getchar();    do    {        calScore(n);//执行函数        printf("**************************\n");        printf("按任意键计算下一位选手的成绩,退出请选择N\n");        scanf("%c",&key);    }    while(key!='N');    return 0;}void calScore(int n){    int i;    double str[n];    double max=0,min=11,sum=0,aver;    printf("请输入选手的成绩(0—10)\n");    for(i=0; i<n; i++)    {        printf("第%d位评委给分:",i+1);        scanf("%lf",&str[i]);        getchar();        if(str[i]>10||str[i]<0)        {            i--;        }        sum+=str[i];    }    for(i=0; i<n; i++)//求出最高分最低分    {        if(str[i]>max)        {            max=str[i];        }        if(str[i]<min)        {            min=str[i];        }    }    printf("减去一个最高分:%.2f,减去一个最低分:%.2f\n",max,min);    aver=(sum-max-min)/(n-2);//求出平均分    printf("当前选手的最后得分是:%.3f\n",aver);}



0 0
原创粉丝点击