高分请教一道C语言程序设计题,急急急~~~

2024-12-05 07:24:36
推荐回答(2个)
回答(1):

/*
变量说明:
n:n个学生
m:m个评委
score[100][20]:最多可存20个评委对100位选手的打分
num[100]:保存选手序号
sum[100]:保存每位选手的平均分
ping[20]:保存对评委打分能力的指数 用它的评分减去各先手平均分之差的绝对值。
pingnum[20]:保存评委的序号
lower:保存最低分
*/

#include
#include

void main()
{
int i,j,n,m,sum[100],ping[20],pingnum[20],num[100],p=0;
int score[100][20],lower,temp=0;
printf("enter n m:");
scanf("%d",&n);
scanf("%d",&m);

for(i=0;i{
ping[i]=0;
pingnum[i]=i+1;
}

for(i=0;inum[i]=i+1;

for(i=0;i{
printf("enter player %d score:\n",i+1); /*输入每位选手的m位评委的打分*/
for(j=0;j{
printf("\tenter ping wei %d score:",j+1);
scanf("%d",&score[i][j]);
if(lower>score[i][j])
{
lower=score[i][j]; /*保存最低分*/
}
sum[i]+=score[i][j]; /*计算每位选手的总分*/
}
sum[i]-=lower; /*减去最低分*/
sum[i]/=(m-1); /*计算选手的平均得分*/
for(j=0;j{
ping[j]+=abs(score[i][j]-sum[i]);/*保存评委的打分指数*/
}
}

for(i=0;i{p=i;
for(j=i+1;jif(sum[p]p=j;
if(p!=i)
{
temp=sum[p];
sum[p]=sum[i];
sum[i]=temp;

temp=num[p];
num[p]=num[i];
num[i]=temp;
}
}

for(i=0;i{p=i;
for(j=i+1;jif(sum[p]p=j;
if(p!=i)
{
temp=ping[p];
ping[p]=ping[i];
ping[i]=temp;

temp=pingnum[p];
pingnum[p]=pingnum[i];
pingnum[i]=temp;
}
}

printf("print player list:\n");
for(i=0;i{
printf("%d %d\n",i+1,num[i]);
}
printf("\nprint ping wei list:\n");
for(i=0;i{
printf("%d %d\n",i+1,pingnum[i]);
}

}

回答(2):

这个你写一人数组应该用行了