@[C202301](/user/975726) 改好了:
```cpp
#include<iostream>
#include<iomanip>
#include<sstream>
#define MAXN 103
using namespace std;
short score1[MAXN][MAXN];
double score(int n,int m)
{
stringstream in;
int a,b,sum=0,max=0,min=11;
double c;
for(b=1;b<=m;b++)
{
cin>>score1[n][b];
sum+=score1[n][b];
if(score1[n][b]>max)
max=score1[n][b];
if(score1[n][b]<min)
min=score1[n][b];
}
sum-=max;
sum-=min;
in<<fixed<<setprecision(2)<<(double)sum/(m-2);
in>>c;
return c;
}
int main()
{
int n,m,a;
double c,max=0;
cin>>n>>m;
for(a=1;a<=n;a++)
{
c=score(a,m);
if(c>max) max=c;
}
cout<<fixed<<setprecision(2)<<max;
return 0;
}
```
问题出在
```cpp
in<<fixed<<setprecision(2)<<sum/(m-2);
```
由于 `sum` 和 `(m-2)` 都是 `int` 类型,所以这里的 `sum/(m-2)` 是 `int` 类型的除法,向下取整,没有计算成小数。
by w9095 @ 2023-07-24 17:46:12
已AC,谢谢
by C202301 @ 2023-07-24 17:54:04