```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,s=0,l=0,k=0;
double t=0;
cin>>n>>m;
int a[21];
int b[11990]; //首先此处b应为double数组
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[i];//这俩都把i改成j。。要不然都在同一个循环内,i的值不变
s+=a[i];
}
sort(a,a+m);
k=s-a[m]+a[0];//此处后面的加号变减号
l=1.0*(m-2);
t=1.0*(k/l);//此处将括号去掉,应用1.0先乘以k,进行隐形类型转换再除以l
b[i]=t;
s=0;
k=0;
t=0;
l=0;
}
sort(b,b+n);
cout<<fixed<<setprecision(2)<<b[n-1];
return 0;
}
```
by _tobi_ @ 2023-08-22 09:05:58
对了还有
```cpp
k=s-a[m]+a[0];
```
这里把a[m]改成a[m-1]不然数组越界
by _tobi_ @ 2023-08-22 09:08:45
@[tobi_qwq](/user/936107) 谢谢!
by ZYL39 @ 2023-08-22 14:45:11
@[tobi_qwq](/user/936107)
```
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,s=0,l=0,k=0;
double t=0;
cin>>n>>m;
int a[21];
double b[119900]; //首先此处b应为double数组
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[j];//这俩都把i改成j。。要不然都在同一个循环内,i的值不变
s+=a[j];
}
sort(a,a+m);
k=s-a[m-1]-a[0];//此处后面的加号变减号
l=1.0*(m-2);
t=(int)1.0*k/l;//此处将括号去掉,应用1.0先乘以k,进行隐形类型转换再除以l
b[i]=t;
s=0;
k=0;
t=0;
l=0;
}
sort(b,b+n);
cout<<fixed<<setprecision(2)<<b[n-1];
return 0;
}
```
您好,这还是不行,是我改错了吗,只有60分,2、3测试点没有过
by ZYL39 @ 2023-08-22 14:52:05
```cpp
t=(int)1.0*k/l;
```
前面为啥要加 (int) 。。
去掉就ac了
by _tobi_ @ 2023-08-22 16:34:33