1. 程式人生 > >C語言課程設計----歌手大獎賽計分系統

C語言課程設計----歌手大獎賽計分系統

(一):

/***************************************************************

功能描述:在歌手大獎賽中,有n位評委為參賽的選手打分,分數為0~10分(執行時由人輸入)。

                      選手最後得分為,去掉一個最高分和一個最低分後其餘分數的平均值。

引數:      n 表示評委人數,

              score表示成績

              max表示最高分

              min表示最低分

              aver表示平均分

程式:

#include <stdio.h>
#include <stdlib.h>
void calScore(int);//定義評分過程的函式
int main()
{
    int n;
    printf("請輸入評委人數:");//輸入評委人數
    scanf("%d",&n);
    calScore(n);    //呼叫函式
    return 0;
}
void calScore(int n)
{
    int i;
    double sum=0,max=0,min=10,score,aver;
    printf("請輸入選手成績(0-10)\n");
    for(i=1;i<=n;i++)
    {
        printf("第%d位評委給分:",i);
        scanf("%lf",&score);
        sum=sum+score;
        if(max<score)
            max=score;
        if(min>score)
            min=score;
    }
    printf("減去一個最高分:%.2f,減去一個最低分:%.2f\n",max,min);
    aver=(sum-max-min)/5.0;
    printf("當前選手得分:%.3f",aver);
}


測試:

(二):

/************************************************************

功能描述:進一步完善(1)的程式。輸入時,難免有錄入錯誤發生,如果輸入的成績不在0-10之間,

                   要求使用者立即重新輸入(在函式calScore中修改);一次執行程式只計算一位選手成績太麻煩,

                   要求輸出當前選手的最後得分後,提示“按任意鍵計算下一位選手的成績,退出請選擇N:”

                   如果輸入的不是Nn,可以為下一位選手計算成績。

引數:  X是否繼續的標誌

              n 表示評委人數,

          score表示成績

          max表示最高分

          min表示最低分

          aver表示平均分

程式:

#include <stdio.h>
#include <stdlib.h>
void calScore(int);
int main()
{
    int n;
    printf("請輸入評委人數:");
    scanf("%d",&n);
    calScore(n);
    return 0;
}
void calScore(int n)
{
    int i;
    char X;
    double sum=0,max=0,min=10,score,aver;
    printf("請輸入選手成績(0-10)\n");
    for(i=1;i<=n;i++)
    {
        printf("第%d位評委給分:",i);
        scanf("%lf",&score);
        if(score>10||score<0)
        {
            i=i-1;
            continue;
        }
        sum=sum+score;
        if(max<score)
            max=score;
        if(min>score)
            min=score;
    }
    printf("減去一個最高分:%.2f,減去一個最低分:%.2f\n",max,min);
    aver=(sum-max-min)/5.0;
    printf("當前選手得分:%.3f\n",aver);//選手平均得分
    printf("*************SUCCESS********\n");
    printf("按N鍵退出,其他鍵繼續\n");
    fflush(stdin);        //清除緩衝區
    scanf("%c",&X);
    if(X!='N'&&X!='n')
        calScore(n);
}

測試: