一道运动员排名的题,写了几天没写出来,希望大神可以帮帮忙看一下~

qq_35518548 2016-07-11 06:18:44
某体操比赛共有12名运动员参加,10名评委根据运动表现进行评分(满分10分),请编写Python程序,解决下列问题:
1.每个运动员评分中去掉一个最高分和一个最低分,计算平均成绩,然后给出运动员排名。
2.尽量减少人为因素,组委会要求去掉第一个问题中去掉次数排名前三的评委给每个运动员的评分,然后计算平均成绩后排名。


#include<stdio.h>

struct player
{
float socre[10];
float sum;
float avg;
int num;
}pl[12];

FILE *fp;

void question1()
{
int i,j,minn;
float max,min,temp;


fp=fopen("defen.txt","r");

if((fp=fopen("defen.txt","r"))==NULL)

printf("Can not open the file.\n");

else
{
for(i=0;i<12;i++)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%f",&pl[i].socre[j]);
}
}
}

fclose(fp);

for(i=0;i<12;i++)
{
for(j=1;j<10;j++)
{
max=pl[i].socre[0];
if(pl[i].socre[j] > max)
max=pl[i].socre[j];
}
pl[i].sum-=max;
}

for(i=0;i<12;i++)
{
for(j=1;j<10;j++)
{
min=pl[i].socre[0];
if(pl[i].socre[j]<min)
min=pl[i].socre[j];
}
pl[i].sum-=min;
}

for(i=0;i<12;i++)
{
pl[i].avg=pl[i].sum/8;
}

for(i=0;i<12;i++)
{
minn=i;
for(j=1;j<12;j++)
{
if(pl[j].avg<pl[minn].avg)
minn=j;
}
if(i != minn)
{
temp=pl[minn].avg;
pl[minn].avg=pl[i].avg;
pl[i].avg=temp;
}
}

for(i=0;i<12;i++)
{
printf("%.2f",pl[i].avg);
}

printf("\n");


}

这是我自己写的第一问的程序,编译没问题但是一运行就终止了不知道怎么回事;最后要求输出运动员的排名,不知道该怎么把平均分和运动员对应起来。另外第二问该怎么判断评委给出最高分和最低分次数哇?
...全文
119 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35518548 2016-07-12
  • 打赏
  • 举报
回复
我是分了几个子程序写的,第一问单独用了一个question1函数,在主程序main函数里面直接调用的这个函数。
赵4老师 2016-07-11
  • 打赏
  • 举报
回复
main函数呢?

251

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧