求助

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

```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


|