#2#3WA 求助

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

@[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


|