xdm,n个数字怎么实现去掉一个最小值,去掉一个最大值

。。。怎么搞。。。。。。。 。。。。。

img

不用排序O(N)就可以了,直接遍历,求和,遍历过程中求出最小值和最大值还有和,循环结束后,减去最大和最小值。

int main(){
   double arr[1000];
  int n=0;
  scanf("%d",&n);
  for(int i=0;i<n;i++)
  {
     scanf("%lf",&arr[i]);
 } 
  double sum=0.0;
  double max=arr[0];
 double min=arr[0];
 for(int i=0;i<n;i++){
    sum+=arr[i];
    if(arr[i]>max)
       max=arr[i];
    if(arr[i]<min)
       min=arr[i];
 }
 sum=sum-max-min;
 double avage=sum/(n-2);

}
#include<stdio.h>
int main() {
    int n, i;
    double max, min, a,s;
    scanf("%d %lf", &n, &a);
    max = a;
    min = a;
    s = a;
    for(i = 1; i < n; i++) {
        scanf("%lf", a);
        if(a > max) max = a;
        if(a < min) min = a;
        s += a;
    }
    printf("%.2lf", s/(n-2));
    return 0;
}

少写代码就 n个数字组成的数组;对数组排序后,去掉第一个和最后一个