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

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

```sign: -

```integral part: 123

```decimal fraction part: 0.456000

#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;
}

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

#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;
}

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

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;
}