为啥只有70分?
查看原帖
为啥只有70分?
786217
Lance_zyx楼主2022/11/2 21:17
#include <stdio.h>
#include <math.h>

double MAX(double a,double b)  {double max1; max1=a;if(b>a)max1=b;return max1;}
int main()
{
	int n;
	scanf("%d",&n);
	double a[301]={0};
	int i,j;
	double sum=0;
	double max=-10000000,min=99999999;
	for(i=1;i<=n;i++)
	{
		
		scanf("%lf",&a[i]);
		
		if(a[i]>max) max=a[i];
		if(a[i]<min) min=a[i];
		sum+=a[i];
	}
	sum-=max+min;
	double ave=sum/(n-2);
	int n1=0,n2=0;      
	
	for(i=1;i<=n;i++)
	{
		if(a[i]==max)
		{
			n1++;
			a[i]=-10000000;
		}
		if(a[i]==min)
		{
			n2++;
			a[i]=-10000000;
		}
	}
	double wu=0;
	for(i=1;i<=n;i++)
	{
		if(n1>1&&n2<=1&&a[i]!=-10000000)
		{
			wu=MAX(fabs(ave-max),fabs(ave-a[i]));
		}
			else if(n1<=1&&n2>1&&a[i]!=-10000000){
			
			wu=MAX(fabs(ave-min),fabs(ave-a[i]));
			 }
			else if(n1>1&&n2>1)
			{
			wu=MAX(fabs(ave-max),fabs(ave-min));
			}
		else if (fabs(a[i]-ave)>wu&&a[i]!=-10000000) {
		wu=fabs(a[i]-ave);}
	}
	printf("%.2lf %.2lf",ave,wu);
	return 0;
}
2022/11/2 21:17
加载中...