第二个和第三个测试点没过,感觉是因为没考虑评委为一个或者两个的情况,但是真的不知道怎么写了。。
#include <stdio.h>
double compare(int people[],int n);
double average(int mark[],int m);
int main(){
int m,n;
scanf("%d %d",&n,&m);
int mark[m];
int people[n];
int i;
int j;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&mark[j]);
}
people[i]=average(mark,m);
}
double max=compare(people,n);
printf("%.2f",max);
return 0;
}
double average(int mark[],int m){
int i,j;
int t;
for(i=0;i<m;i++){
for(j=i+1;j<m;j++){
if(mark[i]>mark[j]){
t=mark[i];
mark[i]=mark[j];
mark[j]=t;
}
}
}
double y=0.0;
int k;
for(k=1;k<m-1;k++){
y=y+(double)mark[k];
}
y=y/(m-2);
return y;
}
double compare(int people[],int n){
int i,j;
for(i=1;i<n;i++){
if(people[0]<people[i]){
j=people[0];
people[0]=people[i];
people[i]=j;
}
}
return people[0];
}