#include<string.h>
void main()
{
int i,j,m,n
float num,xgrade[100],max,min,pgrade[100],pdis[100]
char str[10],xname[100][10],pname[100][10]
printf("请输入评委人数:")
scanf("%d",&m)
printf("\n请分别输入评委姓名:\n")
for(i=0i<mi++)
{
scanf("%s",&pname[i])//评委姓名
pgrade[i]=0//评委给的分
pdis[i]=0//评委给分和最后结果的差距
}
printf("\n请输入选手人数:")
scanf("%d",&n)
printf("\n请分别输入选手姓名:\n")
for(i=0i<ni++)
{
scanf("%s",&xname[i])//选手姓名
xgrade[i]=0//选手成绩
}
for(i=0i<ni++)
{
max=0min=10//评委给选手的最大最小成绩
printf("\n请给选手%s打分!",xname[i])
for(j=0j<mj++)
{
printf("\n%s老师给的分数为:",pname[j])
scanf("%f",&pgrade[j])
xgrade[i]+=pgrade[j]//加到该选手的总分数中
if(max<pgrade[j])
max=pgrade[j]
if(min>pgrade[j])
min=pgrade[j]
}
xgrade[i]=(xgrade[i]-max-min)/(m-2)//最后成绩为总成绩-最高分-最低分,然后平均
for(j=0j<mj++)//算出每个评委本次评分和最终成绩的差,加到pdis中保存起来
{
pdis[j]+=pgrade[j]>xgrade[i]?(pgrade[j]-xgrade[i]):(xgrade[i]-pgrade[j])
}
}
for(i=0i<n-1i++)
for(j=0j<n-1-ij++)
if(xgrade[j]<xgrade[j+1])
{
strcpy(str,xname[j])
strcpy(xname[j],xname[j+1])
strcpy(xname[j+1],str)
num=xgrade[j]
xgrade[j]=xgrade[j+1]
xgrade[j+1]=num
}
printf("\n选手按名次排名为:\n")
printf("选手名\t得分\n")
for(i=0i<ni++)
printf("%s\t%f\n",xname[i],xgrade[i])
for(i=0i<m-1i++)
for(j=0j<m-1-ij++)
if(pdis[j]>pdis[j+1])
{
strcpy(str,pname[j])
strcpy(pname[j],pname[j+1])
strcpy(pname[j+1],str)
num=pdis[j]
pdis[j]=pdis[j+1]
pdis[j+1]=num
}
printf("\n评委按名次排名为:\n")
printf("评委名\t差分\n")
for(i=0i<mi++)
printf("%s\t%f\n",pname[i],pdis[i])
}
vae.la
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)