weixin_44032385
乔唐
2019-01-19 17:02
采纳率: 0%
浏览 3.0k

【C语言编写函数问题】从键盘输入一个浮点数,编写程序完成 如下功能:

编写程序,从键盘输入一个不等于0的浮点数,然后利用格式控制串分别输出这个浮点数的符号、整数部分和小数部分。例如输入-123.456,输出应该是按下列格式输出**(不允许使用if语句)**:

```sign: -

```integral part: 123

```decimal fraction part: 0.456000

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • BostonRayAlen
    bostonAlen 2019-01-19 17:40

    这个不难,就用一个 ?:表达式就行了

    int main()
    {
        double x = 0;
        scanf_s("%lf", &x);
        x < 0 ? printf("sign:-\nintegral part:%d\ndecimal fraction part:%lg\n", (int)x, (x - (int)x)) : printf("sign:+\nintegral part:%d\ndecimal fraction part:%lg\n", (int)x, x - (int)x);
        return 0;
    }
    
    点赞 评论
  • weixin_41461277
    _ZGq 2019-01-21 13:06
    #include<stdio.h>
    #include<math.h>
    int main(){
        double dbl;
        scanf("%lf",&dbl);
        printf("sign: %c\nintegral part: %d\ndecimal fraction part: %.6f",dbl>=0?'+':'-',abs((int)dbl),fabs(dbl)-abs((int)dbl));
        return 0;
    }
    
    点赞 评论
  • weixin_44032385
    乔唐 2019-03-02 15:19
    #include <stdio.h>
    
    #include<math.h>
    

    int main()
    int main()
    {
    double x;
    printf("请输入一个不等于0的浮点数:");
    scanf(" %lf", &x);
    x<0? printf("sign:-\nintegral part:%d\ndecimal fraction part:%.6lf\n",abs((int)x),fabs(x-(int)x)) : printf("sign:+\nintegral part:%d\ndecimal fraction part:%.6lf\n", abs((int)x),fabs(x-(int)x));
    return 0;
    }

    最终是这样解决的,感谢两位!
    还有什么问题吗?

    点赞 评论

相关推荐