大意

给定\(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;
}
12-21 21:36