社区讨论

求改正,结果对了,只有二十分

B2095白细胞计数参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m53uepmf
此快照首次捕获于
2024/12/25 19:59
去年
此快照最后确认于
2025/11/04 12:21
4 个月前
查看原帖
C
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double calaver(double number[],int n,double max,double min){
    double sum=0;
    for(int i=0;i<n;i++){
        if(number[i]!=max&&number[i]!=min){
                sum+=number[i];
    }
    }
    return sum/(n-2);
}
double calerror(double number[],double max,double min,int n,double aver){
    double e=0;
    for(int i=0;i<n;i++){
        if(number[i]!=max&&number[i]!=min){
            double l=fabs(number[i]-aver);
            if(l>e){
                e=l;
            }
        }
    }

    return e;
}
int main(){
    int n;
    scanf("%d\n",&n);
    double number[n];
    for(int i=0;i<n;i++){
        scanf("%lf\n",&number[i]);
    }

double max=number[0];double min=number[0];
    for(int i=1;i<n;i++){
        if(number[i]>max)
            max=number[i];
        if(number[i]<min)
            min=number[i];
    }
    double aver=calaver(number,n,max,min);
    double error=calerror(number,max,min,n,aver);
    printf("%.2lf %.2lf",aver,error);
    return 0;
}
这个错在哪里啊,我在自己的编译器上试了,结果是对的啊

回复

2 条回复,欢迎继续交流。

正在加载回复...