题目:设计一个程序处理比赛成绩。设计要求:
1)有100个歌手参加比赛,12 位评委评分,一个歌手唱完后各评委替他(她)评分;
2)记分办法:去掉一个最高分,去掉一个最低分,按中间几个分数计平均分;
3)数据直接从键盘输入或先录入文本文件,然后读入;
4)对歌手按得分从高到低排序;
5)按得分从高到低排序输出歌手编号、姓名与得分。
我的程序(用WIN-TC运行)
#include <stdio.h>
#include <conio.h>
struct singer
{long int num;
char name[8];
double score[12];
double aver;
}sin[100];
int j,k;
double vs(double a[])
{int c,d,e;
for(j=0;j<12;j++)
scanf("%f",&a[j]);
for(a=0;j<11;j++)
{c=j;
for(d=j+1;d<12;d++)
if(a[c]<a[d])c=d;
if(c!=j)
{e=a[j];
a[j]=a[c];
a[c]=e;
}
}
printf("\n");
for(j=0;j<12;j++)
return (a[j]);
}
main()
{double sum=0;
for(k=0;k<100;k++)
{printf("please input num\name:");
scanf("%ld,%s",sin[k].num,&sin[k].name);
printf("please input score:");
for(j=0;j<12;j++)
scanf("%f",&sin[k].score[j]);
vs(sin[k].score);
for (j=0;j<12;j++)
printf("%f",sin[k].score[j]);
for (j=1;j<10;j++)
sum+=sin[k].score[j] ;
sin[k].aver=sum/10.0;
}
for(k=0;k<100;k++)
vs(sin[].aver); 显示此行有错误
printf("%f,%ld,%s",sin[k].aver,sin[k].num,sin[k].name);
getch();
}
尽快回复