5 solutions
-
0
#include <bits/stdc++.h> using namespace std; double a[305]; int main() { double n,d,x,p=0,j; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } d=a[1]; x=a[1]; for(int i=1;i<=n;i++) { if(d<a[i])d=a[i]; if(x>a[i])x=a[i]; } for(int i=1;i<=n;i++) { if(d==a[i]) { a[i]=-1; break; } } for(int i=1;i<=n;i++) { if(x==a[i]) { a[i]=-1; break; } } for(int i=1;i<=n;i++) { if(a[i]!=-1)p=p+a[i]; } j=0; for(int i=1;i<=n;i++) { if(j<abs(p/(n-2.0)-a[i]) && a[i]!=-1) { j=abs(p/(n-2.0)-a[i]); } } printf("%.2lf %.2lf",p/(n-2.0),j); }
-
0
#include <iostream> #include <vector> #include <algorithm> #include <cmath> #include <iomanip> using namespace std; int main() { int n; cin >> n; vector<double> samples(n); for (int i = 0; i < n; ++i) { cin >> samples[i]; } sort(samples.begin(), samples.end()); // 对样本进行排序 double sum = 0.0; for (int i = 1; i < n - 1; ++i) { sum += samples[i]; } double average = sum / (n - 2); // 平均白细胞数量 double maxDiff = 0.0; for (int i = 1; i < n - 1; ++i) { maxDiff = max(maxDiff, abs(samples[i] - average)); } cout << fixed << setprecision(2) << average << " " << maxDiff << endl; return 0; }
这个是对的,可以试一试,不对的话给差评,如果是对的,麻烦给个好评,谢谢!
-
-2
#include<bits/stdc++.h> using namespace std; const int N=310; double a[N]; int main() { int n; cin>>n; int maxid,minid; double sum=0; for (int i=1;i<=n;i++) { cin>>a[i]; if (i==1 || a[i]>a[maxid]) { maxid=i; } if (i==1 || a[i]<a[minid]) { minid=i; } sum+=a[i]; } sum=sum-a[maxid]-a[minid]; double ave=sum/(n-2); double res=0; for (int i=1;i<=n;i++)// { if (i==maxid || i==minid) continue; double t=abs(a[i]-ave); if (t>res) { res=t; } } cout<<fixed<<setprecision(2)<<ave<<" "<<res; return 0; }
-
-3
#include<bits/stdc++.h> using namespace std; const int N=310; double a[N]; int main() { int n; cin>>n; int maxid,minid; double sum=0; for (int i=1;i<=n;i++) { cin>>a[i]; if (i==1 || a[i]>a[maxid]) { maxid=i; } if (i==1 || a[i]<a[minid]) { minid=i; } sum+=a[i]; } sum=sum-a[maxid]-a[minid]; double ave=sum/(n-2); double res=0; for (int i=1;i<=n;i++)// { if (i==maxid || i==minid) continue; double t=abs(a[i]-ave); if (t>res) { res=t; } } cout<<fixed<<setprecision(2)<<ave<<" "<<res; return 0; }
- 1
Information
- ID
- 897
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 229
- Accepted
- 40
- Uploaded By