B2016浮点数向零舍入

B2016 浮点数向零舍入

tuonisitake @ 2024-09-22 10:53:43

这道题使用强转不能拿满分,所以使用了math.h的头文件。floor(num)是正数向下转换为整数,ceil(num)是负数向上转换为整数,恰好符合题目条件,最后加个判断,如果为0就直接返回。代码如下:

#include <stdio.h>
#include <math.h>
int main() {
    double a;
    double b;
    scanf("%lf",&a);
    if (a>0)
    {
        b= floor(a);
    } else if (a<0)
    {
        b= ceil(a);
    } else{
        b=a;
    }
    printf("%0.0lf",b);
    return 0;
}

by Phigors @ 2024-09-22 10:56:00

不是可以强转吗?


by luxiaomao @ 2024-09-22 10:58:45

讨论区题解,建议紫衫。


|