北邮VC++实验题 校园歌手大赛新规则
题目描述
8号选手参加校园歌手大赛,编程读入20个整数(0 - 100之间)并存入数组中做为评委打分。最后得分计算规则:先计算20个数的平均分,然后去掉所有与平均分相差10分以上的分数,最后把剩下的分数再取平均做为最后得分。如果没有剩下分数,此次打分无效。
输入格式
输入20个整数。
输出格式
输出三行,具体详见输出样例。
样例
样例输入 #1
1
|
86 87 83 70 99 94 78 89 86 80 97 84 90 87 95 87 84 99 84 95
|
样例输出 #1
1
2
3
|
所有评委平均分:87.700分.
不合格得分:70 99 99.
最后得分:87.412分.
|
样例输入 #2
1
|
72 72 73 71 71 72 73 71 71 72 98 98 97 100 99 97 97 99 99 99
|
样例输出 #2
1
2
3
|
所有评委平均分:85.050分.
不合格得分:72 72 73 71 71 72 73 71 71 72 98 98 97 100 99 97 97 99 99 99.
无合格打分.
|
解答
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <iostream>
#include <cstring>
#include <bitset>
#include <cmath>
using namespace std;
int main()
{
int zzz=1;
double a[20],sum=0,total=20,sum2=0;
for(int i=0;i<20;i++)
{
cin>>a[i];
sum+=a[i];
}
sum/=20;
printf("所有评委平均分:%.3lf分.\n",sum);
cout<<"不合格得分:";
for(int i=0;i<20;i++)
{
if(fabs(a[i]-sum)>10.00){
if(zzz==1){cout<<a[i];zzz=0;total-=1;}
else{cout<<" "<<a[i];total-=1;}
}
else sum2+=a[i];
}
cout<<"."<<endl;
if(total==0){cout<<"无合格打分.";return 0;}
printf("最后得分:%.3lf分.",sum2/total);
}
|