求各位大神帮我看看我写的这段程序,帮我看看哪里出错了
问题 :有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,去掉一个最低分,剩下分数的平均值最为每位选手的最后成绩要求:1、采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
2、从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;
3、计算每位选手的最后得分,并按分数由高到低排序;
4、查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;
以上功能采用菜单操作方式,即从键盘输入1到3这三个数,分别完成以上2到4的功能。
#include<stdio.h>
#include<string.h>
#define N 10
char name[N][10];
float bianhao[10],score[10],dafen[10];
void init()
{int i,j;
float score[100],min=100,max=0,sum=0;
for(i=0;i<10;i++)
{
printf("请输入选手的编号(1-10):");
scanf("%d",&bianhao[i]);
printf("请输入选手的姓名:");
scanf("%s",name[i]);
printf("请输入评委的打分(0-10):");
scanf("%d",&dafen[i]);
for(j=0;j<10;j++)
{
scanf("%f",&score[j]);
sum=sum+score[j];
if(max<score[j])
{max=score[j];}
if(min>score[j])
{min=score[j];}
}
if(j==9)
score[i]=(sum-max-min)/8;
}
}
void paixu()
{int i,j;
char name[N][10],stemp[10];
float score[10],temp;
for (i=0;i<N-1;i++)
for (j=i+1;j<N;j++)
if(score[i]<score[j])
{ temp=score[i];
score[i]=score[j];
score[j]=temp;
strcpy(stemp,name[i]);
strcpy(name[i],name[j]);
stecpy(name[j],stemp);
}
printf("10位选手的分数从高到低的排序为:\n");
for (i=0;i<N;i++)
printf("%10s%f",name[i],score[i]);
}
void chaozhou()
{char s[20];
int i;
printf("请输入选手的编号或名字");
scanf("%s",s);
for (i=0;i<N;i++)
{if(strcmp(name[i],s)==0||strcmp(bianhao[i],s)==0)
printf("该选手的分数为%d 排名为%d",score[i],i+1);
break;
}
}
int main()
{int n;
printf("1输入选手信息\n2排序输出名次\n3查找\n");
while (1)
{printf("选择");
scanf("%d",&n);
switch (n)
{case 1:
init();
break;
case 2:
paixu();
case 3 :
chaozhao();
}
}
}