程序1 :
#include
#define N 10
#define M 50
//本程序对歌手的打分均限定在整数范围
//若需处理成小数形式,只要将数据类型设定为float即可
void main()
{
static char name[M+1][]={
"";
"singer1 name";
......
"singer50 name"
}; //50位歌手名字
static int scores[M+1]; //50位歌手得分
int i,j;
for (i=1;i100))
{
printf("\nThe score must be less than 100 or larger than 60.\n");
scanf("d%",&data[1]);
}
score=0;
Tmax=data[1];
Tmin=data[1];
for (i=2;i100))
{
printf("\nThe score must be less than 100 and larger than 60.\n");
scanf("d%",&data[i]);
}
if (data[i]Tmax)
{
score+=Tmax;
Tmax=data[i];
}
else score+=data[i];
}
//直接输出去掉一个最高分及一个最低分之后的平均值
return score/(N-2);
}
void sort_out(char name[M+1][],int sco[M+1])
{
int i,j;
static int flag[M+1];
//利用flag记录歌手的位次
for (i=1;i
#include
#define N 6 //参赛选手人数
#define M 5 //评委人数
struct compete
{
int score[N*M]; //存放每个选手分数的数组
char num[N]; //存放选手序号的数组
}comp[N];
main()
{
int i,j,k,max[N],min[N],average[N],sum[N]={0};
for(i=0;imax[i])max[i]=comp[i].score[k]; //最大值放入max 中
if(comp[i].score[k]<min[i])min[i]=comp[i].score[k]; //最小值放入min中
}
average[i]=sum[i]-max[i]-min[i]/M-2; //计算平均值并放入average数组
putchar('\n');
}
for(i=0;i<N;i++) //打印出每个选手的得分情况
{
printf("\n%s号选手的得分情况如下: \n\n",comp[i].num);
printf("%10s%10s%10s%10s\n","总分","平均分","最高分","最低分");
printf("%10d%10d%10d%10d\n",*(sum+i),*(average+i),*(max+i),*(min+i));
}
getch();
}