8号选手参加校园歌手大赛,编程读入20个整数(0 - 100之间)并存入数组中做为评委打分。最后得分计算规则:先计算20个数的平均分,然后去掉所有与平均分相差10分以上的分数,最后把剩下的分数再取平均做为最后得分。如果没有剩下分数,此次打分无效。
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
int a[20];
double sum=0;//保证平均分是double型
for(int i=0;i<20;i++)
{
cin>>a[i];
sum+=a[i];
}
double p,k;
p=sum/20;
cout<<"所有评委平均分:"<<fixed<<setprecision(3)<<p<<"分."<<endl;
int c=0;
cout<<"不合格得分:";
for(int i=0;i<20;i++)
{
k=fabs(a[i]-p);
if(k>=10){
if(c>0) cout<<" ";//保证"."前面没有空格
cout<<a[i];
sum-=a[i];
c++;
}
}
cout<<"."<<endl;
if(c==20)
cout<<"无合格打分."<<endl;
else{
double l=sum/(20-c);
cout<<"最后得分:"<<fixed<<setprecision(3)<<l<<"分."<<endl;
}
return 0;
}
提示:
if(c>0) cout<<" ";表示从第二个不合格分数开始,在数前面加一个空格。否则输出会是"不合格得分:709999."或者是“不合格得分:70 99 99 .”
知识点:
1.输出格式控制
fixed<<setprecision(3)表示保留3位小数,需要用到<iomanip>头文件
2.计算绝对值
fabs(x)表示x的绝对值,需要用到<cmath>头文件