二维数组函数运用存储原理降维处理,有没有大佬能帮我改改BUG
查看原帖
二维数组函数运用存储原理降维处理,有没有大佬能帮我改改BUG
922071
libin13815498262楼主2023/2/25 15:47
#include<bits/stdc++.h>
using namespace std;
double avg(double *begin,double *end,double m){
	double *p;
	double total=0;
	double a=DBL_MIN;
	double b=DBL_MAX;
	for(p=begin;p!=end;p++){
		a=max((*p),a);
		b=min((*p),b);
	}
	for(p=begin;p!=end;p++){
		total+=*p;}
		avg=(total-a-b)/m;
		return avg;
}//函数原理,传入二维数组第一维也就是每行首尾地址,在此区间中去掉最大与最小值并求平均数
int main()
{
	double n,m,x=DBL_MIN;
	cin>>n>>m;
	double **a=NULL;
	a=new double*[n];
	for(double i=0;i<n;i++){
		a[i]=new double[m];
	}
	for(double i=0;i<n;i++){
		for(double j=0;j<m;j++){
			cin>>a[i][j];
		}
	}
	for(double i=0;i<n;i++){
		x=max(x,avg((a+n*i),(a+n*i+m),(m-2)));
	}//遍历每行,调用函数传入每行首尾地址以及被除数
	cout<<fixed<<setprecision(2)<<x;//保留两位小数输出
	return 0;
	}
2023/2/25 15:47
加载中...