求助!第二、三个测试点过不了

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

@[0Aurora0](/user/657427) 类型问题,`(float)(sum[n-1]/(m-2))`是如何运算的呢? 首先`sun[n-1]`和`(m-2)`均为 int 型,整数除法,向零取整,最后结果是整数,然后`(float)`将结果转化成 float 型整数,因而小数位早已被省去,只是整数化成了浮点数。这个数据还是比较给面子的,有60分。 修改方案:(float)放进去`(float)sum[n-1]/(m-2)`,也可以用 `1.0*sum[n-1]/(m-2)`(1.0默认类型是浮点型),这样就可以保证两边在除法运算的时候至少有一个是浮点型,从而进行的是浮点运算。 (其实建议浮点型统统用 double,精度高)
by Terrible @ 2022-04-08 00:27:45


```#include<iostream> #include<iomanip> #include<cmath> using namespace std; int main() { double max=0,min=200000000,mark,maxn=0,a,b,c,n,m,sum=0; cin>>n>>m; for(int i=0;i<n;i++) { for(int i=0;i<m;i++) { cin>>a; if(a<min)min=a; if(a>max)max=a; sum=sum+a; } mark=(sum-min-max)/(m-2); if(mark>maxn)maxn=mark; max=0; min=200000000; sum=0; } cout<<fixed<<setprecision(2)<<maxn; return 0; }
by 皓月星辉 @ 2022-04-08 07:59:59


@[Terrible](/user/195942) 懂了,谢谢94
by 0Aurora0 @ 2022-04-08 08:19:16


|