清览题库的一道c语言题

img


输入一个数,分别打印数的符号,整数部分,小数部分,不能使用abs. fabs
输入123.456测试,小数部分多了0.000001


// 方法三:用int取整和if判断
#include <stdio.h>
int main()
{
    double a;
    scanf("%lf",&a);
    if (a<0)
    {
        printf("sign:-\n");
        printf("integral part:%d\n",int(a)*-1);
        printf("decimal fraction part:%f",(a-int(a))*-1);
    }
    else
    {
        printf("sign:+\n");
        printf("integral part:%d\n",int(a)*-1);
        printf("decimal fraction part:%f",(a-int(a))*-1);
    }
}


int main()
{
    int a;
    double n;
    scanf("%lf", &n);

    printf("flag:%c\n", (n > 0) ? '+' : (n = -n, '-'));
    a = (int)n;
    printf("int:%d\n", a);
    printf("dec:%lf\n", n - a);

    return 0;
}