PTA互评成绩
一、题目描述
二、解题思路
对于每个成绩排个序,去掉最高和最低就行了,然后把平均分放入vector就行了。再把vector排个序输出
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 int n,m,k; 4 double ave[10010]; 5 double a[40]; 6 bool cmp(double p,double k) 7 { 8 return p > k; 9 } 10 bool cmp1(double p,double k) 11 { 12 return p < k; 13 } 14 int main() 15 { 16 cin >> n >> m >> k; 17 for(int i = 1;i <= n;i++){ 18 double sum = 0; 19 for(int j = 1;j <= m;j++) 20 cin >> a[j]; 21 sort(a + 1,a + 1 + m,cmp); 22 for(int j = 2;j <= m - 1;j++) 23 sum += a[j]; 24 ave[i] = sum / (m - 2); 25 } 26 sort(ave + 1,ave + n + 1,cmp); 27 vector <double> ans; 28 for(int i = 1;i <= k;i++) 29 ans.push_back(ave[i]); 30 int j = 1; 31 sort(ans.begin(),ans.end(),cmp1); 32 for(auto &u :ans){ 33 if(j == k) 34 cout << fixed << setprecision(3) << u; 35 else 36 cout << fixed << setprecision(3) << u << ' '; 37 j++; 38 } 39 return 0; 40 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}

浙公网安备 33010602011771号