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