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