4868 酷町猫的班**评选1
经验值:0 时间限制:1000毫秒
题目描述 Description
酷町猫小时候在班上除了学习编程的时候非常认真,学习其它科目也非常认真。有一次班上评选班**,全班一共n位同学,除了酷町猫,其他同学都给酷町猫打分。
现在评分规则是这样:
去掉一个最高分和最低分后,剩下的分数取平均分,为酷町猫的最终评分。
输入描述 Input Description
共2行
第一行,输入一个n
第二行,输入n个数,最后一个数为0(表示酷町猫没有参与评分)
输出描述 Output Description
输出一个实数,为酷町猫的最终得分(保留2位小数)
样例输入 Sample Input
5
60 100 90 85 0
样例输出 Sample Output
87.50
数据范围及提示 Data Size & Hint
评分范围为0~100
n<=100
我的代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n,a,h[n];
cin>>n;
int da=0,sum=0,cnt=0;
for(int i=1;i<=n;i++){
cin>>a;
h[i]=a;
if(a>da) da=a;
}
for(int i=1;i<=n;i++){
if(h[i]!=da){
sum+=h[i];
cnt++;
}
}
printf("%.2f",sum*1.0/cnt);
return 0;
}
我测试出来的:
输入
5
60 100 90 85 0
输出
-nan
我服了,真是个 * *,各位大佬能不能给我核心的代码,我很着急用,非常感谢!!!!!
for(int i=1;i<=n;i++){
cin>>b;
if(b==0){
continue;
}
if(b>maxn){
maxn=b;
}
if(b<minn){
minn=b;
}
sum+=b;
}
sum-=(maxn+minn);
printf("%.2f",sum/(n-3.0));
double n,a;
long long max=0,min=101,sum=0;
cin>>n;
for(int i=1;i<n;i++){
cin>>a;
sum+=a;
if(a<min){
min=a;
}
if(a>max){
max=a;
}
}
sum=sum-min-max;
n=n-3;
printf("%.2f",sum/n);
这很简单