编写颁奖程序...代码如下(用vc6.0编程环境) 纠结了。。苦苦思索N久了。。
现在的情况是:没有报错,可是也无法得到正确结果。。纠结了。。苦苦思索N久了。。#include <stdio.h>
float score[80][80];
float aver_score[80];
int num[80];
int n,m;
void input_score() //将选手的得分保存到二维数组
{ int i,j;
for(i=0;i<n;i++)
{ printf("输入%d号学生所得评分:\n",i+1);
for(j=0;j<m;j++)
scanf("%f",&score[i][j]);
}
}
void a_score() //求去掉最高分和最低分后的平均分
{
int i,j;
float s,max,min;
for(i=0;i<n;i++)
{ max=score[i][0];
min=score[i][0];
for(j=0,s=0;j<m;j++)
{
s+=score[i][j];
if(score[i][j]>=max) max=score[i][j];
if(score[i][j]<=min) min=score[i][j];
}
aver_score[i]=(s-max-min)/((float)m-2.0);
num[i]=i;
}
}
void sort() //将平均成绩进行排序
{ int i,j,max,temp2;
float temp1;
for(i=0;i<=n-1;i++)
{ max=i;
for(j=i;j<=n;j++)
{
if(aver_score[max]<=aver_score[j]) max=j;
temp1=aver_score[i];
temp2=num[i];
aver_score[i]=aver_score[max];
num[i]=num[max];
aver_score[max]=temp1;
num[max]=temp2;
}
}
}
void main () //主函数,调用以上函数进行计算,输出
{
int i,j;
system("color 4f");
printf("请输入参加比赛的学生人数:\n");
scanf("%d",&n);
printf("请输入评委人数:\n");
scanf("%d",&m);
printf("\n");
input_score();
a_score();
printf("\n 序号 ");
for (i=0;i<m;i++)
printf(" 评委%d ",i+1);
printf(" 平均分\n");
for (i=0;i<n;i++)
{
printf("%2d号 ",i+1);
for(j=0;j<m;j++)
printf("%10.2f",score[i][j]);
printf("%8.2f\n",aver_score[i]);
}
printf("\n");
sort();
printf("一等奖:\n");
printf("学生:%d号 得分%.2f\n\n",num[0]+1,aver_score[0]);
printf("二等奖:\n");
printf("学生:%d号 得分%.2f 学生:%d号 得分%.2f\n\n",num[1]+1,aver_score[1],num[2]+1,aver_score[2]);
printf("三等奖:\n");
printf("学生:%d号 得分%.2f 学生:%d号 得分%.2f 学生:%d号 得分%.2f\n\n",num[3]+1,aver_score[3],
num[4]+1,aver_score[4],num[5]+1,aver_score[5]);
}