Gym-101502K Malek and Summer Semester

Gym-101502K Malek and Summer Semester


题目链接

题意:
M这学期修了n门课,给出这些课的分数,判断这学期M是否通过。
M要通过这学期,必须至少通过ceil(n*m)门课。
m输入会给出,一门课的成绩>=50才算做通过。

ceil(x)是大于或等于x的最小的整数,例如:ceil(0.95)=1, ceil(4)=4, ceil(7.001)=8。

做法:
(1)
直接使用c的库函数ceil()ceil()返回不小于其参数的最小整数值。这个值以double的形式返回。
与之相关的floor()返回不大于其参数的最大整数值。

(2)
自己动手写一个简单的my_ceil(),见代码。

(1)

#include <stdio.h>
#include <math.h>

int
main() {
    int t, n, i, score, sum, o;
    double m;

    scanf("%d", &t);
    while( t-- ) {
        scanf("%d %lf", &n, &m);
        i = n;
        sum = 0;
        while( i-- ) {
            scanf("%d", &score);
            if( score >= 50 ) {
                sum++;
            }
        }
        o = ceil(n * m);
        if( sum >= o ) {
            printf("YES\n");
        }
        else {
            printf("NO\n");
        }
    }

    return 0;
}

(2)

#include <stdio.h>

int
my_ceil(double x) {
    int ans;

    ans = x;
    if( ans == x ) {
        return ans;
    }
    else {
        return ans + 1;
    }
}

int
main() {
    int t, n, i, score, sum, o;
    double m;

    scanf("%d", &t);
    while( t-- ) {
        scanf("%d %lf", &n, &m);
        i = n;
        sum = 0;
        while( i-- ) {
            scanf("%d", &score);
            if( score >= 50 ) {
                sum++;
            }
        }
        o = my_ceil(n * m);
        if( sum >= o ) {
            printf("YES\n");
        }
        else {
            printf("NO\n");
        }
    }

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值