PAT考试乙级1053(C语言实现)

来源:互联网 发布:知了软件网站后台 编辑:程序博客网 时间:2024/06/05 17:47
#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指保留一位小数。