中易网

n位评委给一位选手打分,去掉其中的一个最高分和一个最低分,求这位选手的平均得分。c语言大神请帮帮忙

答案:3  悬赏:60  
解决时间 2021-01-17 01:35
  • 提问者网友:美人性情
  • 2021-01-16 17:44
n位评委给一位选手打分,去掉其中的一个最高分和一个最低分,求这位选手的平均得分。c语言大神请帮帮忙
最佳答案
  • 二级知识专家网友:何以畏孤独
  • 2021-01-16 18:20
#include

main()
{
int n,i,j,m;
float a[50],avg[50],sum=0,change,max,min;
printf("请输几个评委,几个选手");
scanf("%d%d",&n,&m);
for(j=0;j{

printf("请输入第%d个人的各个分数",j+1);

for(i=0;i{
scanf("%f",&a[i]);
}
max=a[0];
min=a[0];
for(i=0;i{
max=max>a[i]?max:a[i];
min=min}
for(i=0;i{
sum+=a[i];
}
sum=sum-min-max;
avg[j]=sum/(n-2);
printf("平均分为%f\n",avg[j]);
}

for(i=0;ifor(j=0;j{
if(avg[i+1]>avg[i])
{
change=avg[i+1];
avg[i+1]=a[i];<处盯边故装嘎膘霜博睛br /> avg[i]=change;
}
}
for(i=0;iprintf("第%d个人平均分数%6.6f\n",i,avg[i]);

}
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-01-16 20:09
这个问题提得好啊追答#include
#include
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i;
int sum=0;
int min;
int max;
min=max=a[0];
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
sum += a[i];
if(a[i] if(a[i]>max) max=a[i];
}
printf("\n");
sum = sum-min-max;
printf("最后得分:%g",sum/8.0);
return 0;

}那个10换成n8换成n-2然后在程序的开始加上
int n;
scanf("%d",&n);#include
#include
int main()
{
int a[128];
int n;
scanf("%d",&n);
int i;
for(i=0;i scanf("%d",&a[i]);
int sum=0;
int min;
int max;
min=max=a[0];
for(i=0;i {
printf("%d ",a[i]);
sum += a[i];
if(a[i] if(a[i]>max) max=a[i];
}
printf("\n");
sum = sum-min-max;
printf("最后得分:%g",1.0*sum/n-2);
return 0;

}改好了,希望能帮到你!
  • 2楼网友:夜余生
  • 2021-01-16 18:36
你不说最高分和最低分,怎么告诉你
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息