首页
社区
课程
招聘
[求助]c语言关于跳水评分、最佳和最差裁判的问题
发表于: 2008-8-30 15:39 4281

[求助]c语言关于跳水评分、最佳和最差裁判的问题

2008-8-30 15:39
4281
#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个人啊

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
课堂作业要写一个crackme才有人帮你做
2008-8-30 15:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢楼上的大哥,小弟并不是要人来刚我做 只是不知道中间出现了什么问题,想请各位大大来帮忙看看
2008-8-30 16:10
0
雪    币: 261
活跃值: (162)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
4
这里 if(fabs(max-abs(ts[j].score-avg))<0.000005);
把你的分号去掉

还有,你的课堂作业算法有问题
2008-8-30 16:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢楼上的大哥,算法是有问题的,太复杂了,继续修改,呵呵
2008-8-30 17:02
0
游客
登录 | 注册 方可回帖
返回
//