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

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

```sign: -

```integral part: 123

```decimal fraction part: 0.456000

3个回答

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

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;
}
BostonRayAlen
MilitarySimulation 回复_ZGq: 嗯,我错了,要加绝对值。?:知道问题就不大了
10 个月之前 回复
weixin_41461277
_ZGq 整数部分和小数部分不能带符号。像样例,这段代码的输出就是sign:- [\n]integral part:-123 [\n]decimal fraction part:-0.456
10 个月之前 回复
#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;
}
#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;
}

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!