-
-
[求助]c语言关于跳水评分、最佳和最差裁判的问题
-
发表于:
2008-8-30 15:39
4282
-
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//定义裁判的序号、分数的结构
struct umpire {
char id;
double score;
};
struct umpire ts[10];
//求裁判的平均分
double deal_score()
{
int i,j;
double total,avg;
struct umpire temp[2];
temp[0]=ts[0];
temp[1]=ts[1];
//求裁判分数中的最高分
for(i=0;i<10;i++)
{
if(temp[0].score<ts[i].score)
{
temp[0]=ts[i];
}
}
//求裁判分数中的最低分
for(i=0;i<10;i++)
{
if(temp[1].score>ts[i].score)
{
temp[1]=ts[i];
}
}
total=0;
for(i=0;i<10;i++)
{
total+=ts[i].score; //求出10个裁判的总分数
}
avg=(total-temp[0].score-temp[1].score)/10; //总分减去最高分和最低分 然后求平均分
return avg;
}
//求出最差裁判
void detect_score(double avg)
{
int i,j;
double max,min,max1;
struct umpire temp;
temp=ts[0];
max=fabs(ts[0].score-avg);
//求出裁判分数和平均分差的最大值
for(i=0;i<10;i++)
{
if(max<fabs(ts[i].score-avg))
{
temp=ts[i];
max=fabs(ts[i].score-avg);
}
}
printf("最不公平的裁判是:");
for(j=0;j<10;j++)
{
if(fabs(max-abs(ts[j].score-avg))<0.000005);
{
printf("%d ",ts[j].id);
}
//printf(" %lf\n",fabs(max-fabs(ts[j].score-avg)));
}
}
int main()
{
int i;
double avg;
//得到10个裁判的分数
for(i=0;i<10;i++)
{
ts[i].id=i+1;
printf("请输入第%d个裁判的分数:",i+1);
scanf("%lf",&ts[i].score);
}
avg=deal_score();
printf("\n10个裁判的平均分是:%.2lf . \n",avg); //输出平均分
detect_score(avg);
}
以上是我的代码 为什么最后的最差裁判会输出10个人啊
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课