能指和所指的关系:评奖程序

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 12:26:49

#define N 7
#define M 4
struct member
{
char name[12];
float sco;
float a[M];
};
float average(struct member mem)
{
int i;
float max=0,min=0,total=0,aver;
for(i=0;i<M;i++)
{
if(mem.a[i]>max) max=mem.a[i];
if(mem.a[i]<min) min=mem.a[i];
}
for(i=0;i<M;i++)
total+=mem.a[i];
aver=(total-max-min)/(M-2);
return aver;
}
void sort(struct member mem[])
{
int i,j;
float m;
char *a[N],*k;
for(i=0;i<N;i++) a[i]=mem[i].name;
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
if(mem[j].sco<mem[j+1].sco)
{ k=a[j];a[j]=a[j+1];a[j+1]=k;
m=mem[j].sco;mem[j].sco=mem[j+1].sco;mem[j+1].sco=m;}
printf("the first place is %s\n",a[0]);
printf("the second place are %s and %s\n",a[1], a[2]);
printf("the third place are %s and %s and %s\n",a[3], a[4], a[5]);
}
#include "stdio.h"
main()
{
int i,j;
struct member mem[N];
printf("please input the information:name and scores\n");
for(i=0;i<N;i++)
{
printf("NO%d:",i+1);
scanf("%s", mem[i].name);
for(j=0;j<M;j++)
scanf("%f",& mem[i].a[j]);
}
for(i=0;i<N;i++)
mem[i].sco=average(mem[i]);
sort(mem);
}

你想干什么啊??
你不知道它的输出结果吗??
还是不明白程序原理啊??