1 / 4
/*有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,
去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。
要求:
(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
(1 / 4
/*有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,
去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。
要求:
(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;
(3)计算每位选手的最后得分,并按分数由高到低排序;
(4)查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;
以上功能采用菜单操作方式,即从键盘输入1到3这三个数,分别完成以上(2)到(4)的功能*/
#include<>
#include<stdlib.h>
#include<>
#define N 10
#define M 10
struct compete{
char num[10];//编号
char name[10];//姓名
float score[M];//得分
float aver;//最后得分
int no;//排名
}com[N];
void Input(){
int i,j;
for(i=0;i<N;i++){
printf("第 %d 个选手的编号: ",i+1);
scanf("%s",&com[i].num);
printf("姓名: ");
ﻩscanf("%s",&com[i].name);
ﻩfor(j=0;j<M;j++){
printf("第 %d 个裁判对该生打出的分数: ",j+1);
do{
scanf("%f",&com[i].score[j]);
}while(com[i].score[j]<0);
}
}
return;
}
void scan(){
int i,j;
float max,min,sum;
compete temp;
for(i=0;i<N;i++){
sum=0;min=com[i].score[0];max=0;
for(j=0;j<M;j++){
2 / 4
sum+=com[i].score[j];
if(max<com[i].score[j])
max=com[i].score[j];
if(min>com[i].score[j])
min=com[i].score[j];
}
printf("max=%.2f\n",max);
printf("min=%.2f\n",min);
com[i].aver=(sum-max-min)/(M-2);
}
for(i=0;i<N-1;i++){
for(j=i+1;j<N;j++){
if(com[i].aver<com[j].aver){
strcpy(,com[i].num);
strcpy(com[i].num,com[j].num);
strcpy(com[j].num,);
strcpy(temp.n
歌唱比赛计分 来自淘豆网m.daumloan.com转载请标明出处.