任务和代码:在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数调用时,需要将输入的评委人数n作为实参
/*
文件名:main.c
作者:小风景
完成日期:2016.6.24
问题描述:在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数调用时,需要将输入的评委人数n作为实参
程序输出: 歌手的得分
*/
#include <stdio.h>
void calScore(int n);
int main()
{
int n;
printf("请输入评委的人数:");
scanf("%d",&n);
calScore(n);
return 0;
}
void calScore(int n)
{
float sum = 0;
float Nmax = 0;
float Nmin = 10;
int i = 1;
float score;
printf("请输入选手的成绩(0-10):\n");
while(n--)
{
printf("第%d为评委的评分:",i);
scanf("%f",&score);
if(score > Nmax)
{
Nmax = score;
}
if(score < Nmin)
{
Nmin = score;
}
sum += score;
i++;
}
sum = (sum - Nmax - Nmin) / (i - 3);
printf("减去一个最高分:%.2f 减去一个最低分:%.2f\n",Nmax,Nmin);
printf("当前选手的得分是:%.3f",sum);
}
程序运行结果:
总结:首先这个程序按照题目的需求来完成,因此尚存许多缺陷,如评委数不能少于二人.....