提高篇第6-10課作業第二題

#include <stdio.h>
#include <stdlib.h>
//大獎賽積分,函數。
void calScore(int n);
int main( )
{
    int judge_num;
    int flag=0;
    char ch;
    while(flag==0)//這個判斷保證了循環至少會執行一次
    {
        printf("輸入評委人數:");
        scanf("%d",&judge_num);
        calScore(judge_num);
        printf("按任意鍵計算下一位選手的成績,退出請選擇N:\n");
        ch=getchar();//接收上一個語句的換行符
        ch=getchar();
        if(ch=='N'||ch=='n')
        {
            flag=1; //採用額外定義一個flag,而不是直接用ch進行判斷的原因是爲了便於處理其他的退出情況。
            printf("謝謝使用!\n");
        }
    }
    return 0;
}
void calScore(int n)
{
    int i;
    float score=0;
    float sum=0;
    float max=0;
    float ave=0;
    float min=10;//每次循環重新初始化max,min,sum,score
    printf("下面請評委爲歌手的評分\n");
    for(i=1;i<=n;i++)
    {
        printf("請第%d位評委輸入評分(1-10之間的數字):",i);
        scanf("%f",&score);
        if(score<1||score>10)
        {
            printf("分數錯誤,請輸入1-10之間的分數\n");
            i--;//保證當前裁判的分數不會漏掉
            continue;
        }
        sum+=score;
        if(score>=max)
            max=score;
        if(score<=min)
            min=score;
    }
    ave=(sum-max-min)/(n-2);
    printf("去掉最高分%.2f,去掉最低分%.2f,當前選手的總分是%.2f,平均分爲%.2f\n",max,min,sum,ave);

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章