使用C语言但是不用数组求歌星大赛问题
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。
为什么不用数组,是不是用数组的已经搞定了。
程序代码: #include<stdio.h>
// #include<math.h>
double jd(double a){
if(a<0){
return(-a);
}else return(a);
}
int main(void)
{
double a[10]={0};
double sum=0,min=0,max=0,avg=0;
int i,imax,imin;
for(i=0;i<10;i++){
printf("输入评委%d的打分:\n",i+1);
scanf("%lf",&a[i]);
sum+=a[i];
}
max=min=a[0];
for(i=0;i<9;i++){
min=min<a[i+1]?min:a[i+1];
max=max>a[i+1]?max:a[i+1];
}
avg=(sum-min-max)/8.00;
max=min=a[0];
for(i=0,imin=0,imax=0;i<9;i++){
if(jd(avg-min)<=jd(avg-a[i+1])){
//imin=i;
}else{
min=a[i+1];
imin=(i+1);
}
if(jd(avg-max)>=jd(avg-a[i+1])){
//imax=i;
}else{
max=a[i+1];
imax=(i+1);
}
}
printf("去掉最高分和最低分,平均分是:%.2lf\n",avg);
printf("最公平的裁判是 %d号判分为:%.lf\n",imin+1,a[imin]);
printf("最不公平的裁判是%d号判分为:%.lf\n",imax+1,a[imax]);
return 0;
}