20分!样例输出了7.00,求大佬帮忙看看哪里出了问题!
查看原帖
20分!样例输出了7.00,求大佬帮忙看看哪里出了问题!
956316
77Glorious楼主2023/10/9 14:43

思路在注释里写了!(渣初学者只能用暴力呜呜呜QAQ)

#include<bits/stdc++.h>
using namespace std;
int a[110][25],n,m;
int sum[110],ave[110];//sum存每人总分,ave存每人均分 
int main(){
	cin>>n>>m;//n个选手,m个评委 
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}//输入完毕
	
	int x,y,q,w;//x y存最小值位置,q w存最大值位置 
	for(int i=1;i<=n;i++){
		int maxn=-1,minn=11;
		for(int j=1;j<=m;j++){//找每人最大最小值位置并清零 
			if(a[i][j]<=minn)minn=a[i][j];
				x=i;y=j;//最终更新的值是a[x][y]最小 
			if(a[i][j]>=maxn)maxn=a[i][j];
				q=i;w=j;//最终更新的值是a[q][w]最大 
				
		}//j循环结束 
		a[x][y]=0;a[q][w]=0;//清零最值 
		maxn=-1;minn=11;//重置擂主 
	}//总循环结束
	 
	for(int i=1;i<=n;i++){//每位选手  
	
	for(int j=1;j<=m;j++){
		sum[i]=sum[i]+a[i][j];
	} 		ave[i]=sum[i]/(m-2);
    }//计算每人均分 
	
	int max=-1;
	for(int i=1;i<=n;i++){
		if(ave[i]>=max)max=ave[i];		
	}//找到均分最大者 
	
	cout<<max<<".00"<<endl;
	
	return 0; 
}
2023/10/9 14:43
加载中...