求助...

P5726 【深基4.习9】打分

李翊辰2012 @ 2023-08-15 15:44:35

using namespace std;
void del(int a[],int len,int x){
    for(int i=x;i<len;i++){
        a[i]=a[i+1];
    }
}
double avr(int a[],int len){
    double cnt=0;
    for(int i=1;i<=len;i++){
        cnt+=a[i];
    }
    return cnt/len;
}
int main(){
    int n,a[10005];
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int max = max_element(a,a+n)-a;
    int min = min_element(a,a+n)-a;
    del(a,n+1,max);
    del(a,n+1,min);
    cout<<fixed<<setprecision(2)<<avr(a,n-1);
}

只AC了0个

OTZ STO


by hexuchen @ 2023-08-15 15:47:09

没有头文件


by hexuchen @ 2023-08-15 15:49:12

@Eason201212 这道题不用那么复杂吧


by hexuchen @ 2023-08-15 15:51:12

我的思路是先求出最大值和最小值和总和,然后输出总和减去最大值最小值再除以n-2


by 李翊辰2012 @ 2023-08-15 15:58:24

复制错误(头文件忘复制上了)


by 李翊辰2012 @ 2023-08-15 16:02:12

谢谢dalao

我试试按你的思路来

orz

by all___right @ 2023-08-24 20:18:16

@Eason201212 又是你~

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,a,ma,mi;
    double b=0;//双精度
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a;
        b=b+a;//统计所有分
        if(i==1){
            ma=a;
            mi=a;//在初始时min,max都为a
        }
        if(ma<a){
            ma=a;//当max小于a时max=a
        }
        if(mi>a){
            mi=a;//当min大于a时min=a
        }
    }
    b=b-ma-mi;//在循环外改掉最大分和最小分
    printf("%.2f",b/(n-2));//cout太长改用printf,这里把最大最小打分者从n中去掉
    return 0;
}

by all___right @ 2023-08-24 20:23:51

@Eason201212 给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给给关注不能白嫖!


|