#include<stdio.h>
int main(){
int N,D,i,j,K,empty=0,mayempty=0,c=0;
double e,select;
scanf("%d %lf %d",&N,&e,&D);
for(i=0;i<N;i++){
c=0;//一定不要忘记恢复初值
scanf("%d",&K);
for(j=0;j<K;j++){
scanf("%lf",&select);
if(select<e) c++;
}
if(c>K/2){//要写成嵌套判断,不然有重复累加。
if(K>D) empty++;
else mayempty++;
}
}
printf("%.1lf%% %.1lf%%",(double)mayempty/N*100,(double)empty/N*100);
return 0;
}
总结:题目不难,有易错点。
1、第七行c要恢复初值,不然一直跟着加。
2、最后打印的时候(double)mayempty/N*100不要写成(double)(mayempty/N*100),因为只是把mayempty强制转换就行,结果自动变成 double类型。
3、”%%”是打印”%”。%.1lf指保留一位小数。