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

#include 
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;i0;//一定不要忘记恢复初值
        scanf("%d",&K);
        for(j=0;j"%lf",&select);
            if(selectif(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指保留一位小数。

你可能感兴趣的:(PAT)