选手参加校园歌手大赛,编程读入20个整数(0-100之间)并存入数组中为评委打分。最后得分计算规则:先计算20个数的平均分,然后去掉与平均分相差十分以上的分数,最后把剩下的分数再取平均数作为最后得分。如果没有剩下分数,此次打分无效。
输入样例:
86 87 83 70 99 94 78 89 86 80 97 84 90 87 95 87 84 99 84 95
输出样例:
所有评委平均分:87.700分.
不合格得分:70 99 99.
最后得分:87.412分.
#include<iostream>
using namespace std;
int a[20];
int main() {
double ave,s=0;
int n=0;
for(int i=0;i<20;i++){
cin>>a[i];
s+=a[i];
}
ave = s/20;
s=0;
for(int i=0;i<20;i++){
if(fabs(a[i]-ave)<=10){
s+=a[i];
n++;
}
}
if(n==0){
cout<<"打分无效";
}else{
ave = s/n;
cout<<"最终平均分:"<<ave;
}
return 0;
}
觉得有用的话采纳一下哈
代码如下,如有帮助,请帮忙采纳一下,谢谢。
#include<iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int main()
{
int a[20],b[20];
double ave,stotal=0,sef=0;
int i,nef=0,nfail=0;
for(int i=0;i<20;i++)
{
cin>>a[i];
stotal+=a[i];
}
ave = stotal/20;
for(i=0;i<20;i++)
{
if(fabs(a[i]-ave)<=10)
{
sef+=a[i];
nef++;
}else
b[nfail++] = a[i];
}
if(nef ==0){
cout<<"此次打分无效";
}else
{
cout << "所有评委平均分:"<< fixed << setprecision(3) << ave <<"分."<<endl;
cout << "不合格得分:";
for(i=0;i<nfail;i++)
{
if(i==0) cout << b[i];
else cout <<" "<<b[i];
}
cout <<"."<<endl;
cout<<"最后得分:"<< fixed << setprecision(3)<<sef/nef<<"分.";
}
return 0;
}