题目描述:
在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后
得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。
要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委
人数。这样,在main函数调用时,需要将输入的评委人数n作为实参。
程序:
#include <stdio.h>
#include <stdlib.h>
double max;//做全局变量
double min;
double sum;
void calScore(int n);
int main()
{
int n;//评委人数
printf("输入评委人数:");
scanf("%d",&n);
calScore ( n);//调用calScore函数
printf("减去一个最高分:%.2lf,减去一个最低分:%.2lf\n",max,min);
printf("当前选手的最后得分是:%.3lf",sum);
return 0;
}
void calScore(int n)//解释calScore函数
{
int i;
double score;
max=-1;//初始化
min=11;
sum=0;
printf("请输入选手的成绩(0-10)\n");
for(i=1; i<=n; i++)//评委的人数多于一人,用for循环
{
printf("第%d位评委给分:",i);
scanf("%lf",&score);
//循环找出最大值和最小值
if(score>max)
max=score;
if(score<min)
min=score;
sum=sum+score;
}
sum=(sum-max-min)/(n-2);//计算
return;//返回calScore(n)
}
运行结果: