// 引入标准库头文件 #include<bits/stdc++.h> using namespace std; // 定义双精度浮点型数组x和变量n,max1,min,b,p,maxp,maxt,mint double x[310]; double n,max1=INT_MIN,min=INT_MAX,b=0,p=8,maxp=-1; int maxt,mint; // 输入n和x数组 cin>>n; for(int i=0;i<n;i++){ cin>>x[i]; // 找出数组中的最大值和最小值,并记录它们的下标 if(x[i]>max1){ max1=x[i]; maxt=i; } if(x[i]<min){ min=x[i]; mint=i; } // 计算数组中所有元素的和 p+=x[i]; } // 去掉最大值和最小值后,计算平均数 p=(p-max1-min)/(n-2); // 遍历数组,计算每个元素与平均数的差值的绝对值,并找出最大值 for(int i=0;i<n;i++){ if(i!=maxt && i!=mint){ b=x[i]-p; if(b<0){ b=-b; } maxp=max(maxp,b); } } // 输出平均数和最大差值 printf("%.2f %.2f",p,maxp); // 程序结束 return 0; }

C++ 算法:求数组中去掉最大值和最小值后元素与平均值的差值的最大值

原文地址: https://www.cveoy.top/t/topic/nK2H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录