大意
给定\(A,B,C\),其中每个时速满足\(A \leq v \leq B\),如果不满足则记作超速,共有\(C\)个时速,其中有\(F\)个超速,如果\(\frac {F}{C}>10\%\),则输出“\(broken\)”,否则输出未超速的速度的平均值,保留4位小数.
思路
模拟
注意
不要用样例里的数据!!!!!!
不要瞎用define!!!!!!!!
结构体做法
#include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define file(s) freopen(s".in","r",stdin);freopen(s".out","w",stdout); #define dn(s) s+1+s+2+3 #define jiangui cnt=0; using namespace std; int A,B,C; int jiangui //int sta[405]; struct s{ int s; int u; }sta[405]; int tot=0; int cnnnnt; int main(){ // freopen("radar.in","r",stdin); // freopen("radar.out","w",stdout); file("radar"); scanf("%d%d%d",&A,&B,&C); for(int i=1;i<=C;i++){ scanf("%d",&sta[i].s); } for(int i=1;i<=C;i++){ if(sta[i].s>B||sta[i].s<A){ sta[i].u=0; cnt++; } else{ sta[i].u=1; } } if(double(cnt)*1.0/double(C)>0.1){ printf("broken"); return 0; } else{ for(int i=1;i<=C;i++){ if(sta[i].u!=0){ tot+=sta[i].s; cnnnnt++; } } } printf("%.4lf",tot*1.0/cnnnnt); // for(int j=1;j<=C;j++){ // printf("%d\n",sta[j]); // } return 0; }
数组做法
#include <cstdio> #include <cmath> #include <cstring> #include <algorithm> using namespace std; int A,B,C; int cnt=0; int sta[405]; int tot=0; int cnnnnt; int main(){ // freopen("radar.in","r",stdin); // freopen("radar.out","w",stdout); scanf("%d%d%d",&A,&B,&C); for(int i=1;i<=C;i++){ scanf("%d",&sta[i]); } for(int i=1;i<=C;i++){ if(sta[i]>B||sta[i]<A){ cnt++; } } if(cnt*1.0/C>0.1){ printf("broken"); return 0; } else{ for(int i=1;i<=C;i++){ if(sta[i]>=A&&sta[i]<=B){ tot+=sta[i]; cnnnnt++; } } } double s; s=tot*1.0/cnnnnt; printf("%.4lf",s); return 0; }