fhdskf


私信TA

用户名:dotcpp0708309

访问量:171

签 名:

等  级
排  名 5495
经  验 1533
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:
    还是感觉写的复杂了,希望有大佬看到了能指点指点
参考代码:

#include<stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	double arr[n];
	double a;
	for(int i=0;i<n;i++){
		scanf("%lf",&a);
		arr[i]=a;
	}
	double sum=0;
	double max=arr[0],min=arr[0];
	int f,g;
	for(int i=0;i<n;i++){    //得出最大数,最小数,和
		if(arr[i]<min){
			min=arr[i];
			f=i;
		}
		if(arr[i]>max){
			max=arr[i];
			g=i;
		}
		sum+=arr[i];
	}
	arr[f]=-1;
	arr[g]=-1;
	double temp=0;
	double valid=(sum-max-min)/(n-2);    //得出有效值
	max=min=arr[0];
	for(int i=0;i<n;i++){
		if(arr[i]>0){    //在剩下3个里找最大数,最小数
			if(arr[i]>max){
				max=arr[i];
			}
			if(arr[i]<min){
				min=arr[i];
			}
		} 
		
	}
	if(fabs(max-valid)>fabs(valid-min)){    //找到最大差值
		temp=fabs(max-valid);
	}else{
		temp=fabs(valid-min);
	}
	printf("%.2lf %.2lf",valid,temp);	
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »