桐桐的雷达
题目大意:
有一堆数字,并给出一个范围,判断不在范围内的数字是否多过10%,若不多过,那输出范围内数字的平均值
原题:
题目描述
桐桐在去广州的路上,对高速公路上的测速雷达产生了兴趣,于是开始研究有关知识,发现在设计测速雷达时有这样一个计算问题:
一个测速雷达都有一个最高限速和一个最低限速。如果探测到的数据超过最高限速或低于最低限速,都认为驾驶员是违规的。
为了检测探测器是否正常工作,雷达自身要周期性的分析一下最近的数据。假设多数驾驶员遵守交通规则,因此如果有超过10%的数据是违规的,则认为探测器可能出了问题。
现在根据给定的数据,计算合法速度的平均值。如果你判断是探测器坏了,则输出0.0。
输入
第一行3个整数A,B,C(1≤A≤200,A≤B≤200,1≤C≤50)。分为为最低限速和最高限速以及探测到的数据个数。后面一行有C个要分析的数据。
输出
只有一行,为计算的结果(保留一位小数)。
输入样例
1 50 10
42 43 44 45 46 47 48 49 50 51
输出样例
46.0
解题思路:
直接枚举每一个数就可以了
代码:
#include<cstdio>
using namespace std;
int x,n,minn,maxx,sum,ans,num;
int main()
{scanf("%d %d %d",&minn,&maxx,&n);for (int i=1;i<=n;++i){scanf("%d",&x);if (x>=minn&&x<=maxx) sum++,ans+=x;//符合else num++;}if (num*10<=n) printf("%.1lf",(double)ans/(double)sum);//没问题else printf("0.0");
}