C語言課程設計----歌手大獎賽計分系統
阿新 • • 發佈:2019-01-26
(一):
/***************************************************************
功能描述:在歌手大獎賽中,有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:”
如果輸入的不是N或n,可以為下一位選手計算成績。
引數: 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);
}
測試: