大一新生求助大佬,为什么第二个第三个没过
查看原帖
大一新生求助大佬,为什么第二个第三个没过
1554560
weimou00楼主2024/11/2 14:32

第二个和第三个测试点没过,感觉是因为没考虑评委为一个或者两个的情况,但是真的不知道怎么写了。。

#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];
}
2024/11/2 14:32
加载中...