用C语言编程:歌手大奖赛有10名评委打分,去掉一个最高分、去掉一个最低分,求选手的平均分。

谢谢,最好在程序上做注释

#include<stdio.h>
int s_min(int a[]);
int s_max(int a[]);
main()
{
float a[10],min,max,s=0;//定义一个数组用来存放10个评委的分数。定义的min,max,是用来超查找最高分和最低分的。
int i;
printf("请输入10个评委的分数:\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
min=s_min(a);
max=s_max(a);//调用函数找出低分和最高分。
printf("去掉一个最高分%g,去掉一个最低分%g\n",max,min);
for(i=0;i<10;i++)
if(a[i]!=min&&a[i]!=max) //把最高分和最低分不计算进去
s=s+a[i];
printf("最后的得分是%g\n",s/8);

}
float s_min(float a[])
{
int i;
float min=a[0];
for(i=0;i<10;i++)
if(a[i]<min)
min=a[i];
return min;
}
float s_max(float a[])
{
int i;
float max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
return max;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-12
#include<stdio.h>
#include<math.h>
void main()
{ int max(float b[]);
int min(float b[]);
int k,m;
printf(" 评分系统\n");
printf("************************************************************\n");
int i;
float sum=0;
float a[10];
for(i=0;i<=9;i++)
{
printf("%d号评委的评分是:",i+1);
scanf("%f",&a[i]);

sum+=a[i];

}printf("\n\n");
k=max(a);
m=min(a);
printf("---------------------------------------\n");
printf("评委 1 2 3 4 5 6 7 8 9 10\n");
printf("---------------------------------------\n分数");
for(i=0;i<10;i++)
{
printf("%g",a[i]);
}
printf("\n---------------------------------------\n");
printf("\n最高分是:%g 最低分是:%g\n\n",a[k],a[m]);
printf("删除最高分最低分之后的总分是: %g\n\n",sum-a[k]-a[m]);
printf("这位选手的平均分是:%g\n\n",sum/10);
printf("************************************************************\n\n\n\n");} int max(float b[])//最大值
{ int i,k=0;
float max=b[0];
for(i=0;i<10;i++)
{
if(max<b[i]) {max=b[i];k=i;}
}
return k;
}int min(float b[])//最小值
{
int i,m=0;
float min=b[0];
for(i=1;i<10;i++)
{
if(b[i]<min){min=b[i];m=i;}
}
return m;
}本回答被网友采纳
相似回答