求助,不知为何没过样例

P5738 【深基7.例4】歌唱比赛

average(n-2)是啥意思啊..... 我确实没看懂,但我猜是对数组前n-2个数求平均值? 那你这样排完序之后最小值在前面最大值在后面 对前n-2个数求平均值相当于是去掉了两个最高分a 不知道我理解的对不对
by fzy1026 @ 2022-04-22 18:19:16


我不理解( `sort(point+1,point+m+1);` `average(m-2);` 您的 $n$ 和 $m$ 反了……
by Neutralized @ 2022-04-22 18:22:20


@[Neutralized](/user/538609) 鹅,没有
by LeTu_Jun @ 2022-04-22 18:27:23


@[fzy1026](/user/421805) 对不起忘记注释了,这个是去掉最大和最小值后取平均
by LeTu_Jun @ 2022-04-22 18:28:00


@[和国家干部](/user/474235) ?您再仔细看看
by Neutralized @ 2022-04-22 18:29:38


@[和国家干部](/user/474235) 啊呀,朋友,你居然在线
by codinga123456 @ 2022-04-22 18:34:47


@[Neutralized](/user/538609) 哦,对不起,看错了 耽误了您的时间,对不起
by LeTu_Jun @ 2022-04-22 18:42:46


```cpp #include<bits/stdc++.h> using namespace std; const int M=20; int point[M]; int n,m; double ans=-99999999.9; double average (int len) { int sum=0; for(int i=2;i<m;i++){ sum+=point[i]; } return sum/len*1.0; } void scan () { for(int j=1;j<=m;j++){ scanf("%d",&point[j]); } return ; } int main () { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scan(); sort(point+1,point+1+m); ans=max(ans,average(m-2)); } printf("%.2lf",ans); } ``` 已改正,60 分
by LeTu_Jun @ 2022-04-22 21:07:53


也许您应该先在这段代码中 ```cpp double average (int len) { int sum=0; for(int i=2;i<m;i++){ sum+=point[i]; } return sum/len*1.0; } ``` 先乘 $1.0$ 再除 $len$ 就是这样 ```cpp double average (int len) { int sum=0; for(int i=2;i<m;i++){ sum+=point[i]; } return sum*1.0/len; } ``` 这是可以AC的
by xie_lzh @ 2022-04-22 21:26:46


您的 $sum$ 是 $int$ 的变量 必须先乘 $1.0$ 转换为 $double$ 类型才能保留小数
by xie_lzh @ 2022-04-22 21:28:12


| 下一页