大意
给定(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
",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;
}