使用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; }