请问哪里错了

P5726 【深基4.习9】打分

Guanguplussss @ 2024-06-09 11:07:05

1,#2,#4WA,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,tmp=0;
    double sum=0;
    cin>>a;
    const int a_copy=a;
    int b[a_copy]={};
    for(int i=0;i<a;i++){
        cin>>b[i];
    }
    for(int j=0;j<a-1;j++){
        if(b[j]<b[j+1]){
            swap(b[j],b[j+1]);
        }
    }
    b[0],b[a]=0;
    for(int k=1;k<a-1;k++){
        sum+=b[k];
    }
    cout<<fixed<<setprecision(2)<<sum/(a-2);
    return 0;
}

by OIer_Hhy @ 2024-06-09 11:10:52

@Guanguplussss 你排序写错了

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,tmp=0;
    double sum=0;
    cin>>a;
    const int a_copy=a;
    int b[a_copy]={};
    for(int i=0;i<a;i++){
        cin>>b[i];
    }
    /* 错误排序 
   for(int j=0;j<a-1;j++){
        if(b[j]<b[j+1]){
            swap(b[j],b[j+1]);
        }
    }
  */
       //正确排序
    for(int i=0;i<a;i++){
        for(int j=0;j<a-1;j++){
            if(b[j]<b[j+1]){
                swap(b[j],b[j+1]);
            }
        }
    }

    b[0],b[a]=0;
    for(int k=1;k<a-1;k++){
        sum+=b[k];
    }
    cout<<fixed<<setprecision(2)<<sum/(a-2);
    return 0;
}

by renzhanwen @ 2024-06-09 11:11:34

@Guanguplussss 代码第17行应是b[a-1]=0,求关。


by OIer_Hhy @ 2024-06-09 11:16:14

@syex_renzhanwen

第十七行可以去掉,因为求和时没求


by renzhanwen @ 2024-06-09 11:48:51

@LALaker 恍然大悟。


by Guanguplussss @ 2024-06-14 21:03:19

@所有人 谢谢啦!


by abc20131113 @ 2024-07-19 17:18:57

插一下我的话:能否请教一下,这题我没看懂......


by Guanguplussss @ 2024-10-06 09:05:11

@abc20131113 emm......


|