编写程序,从键盘输入一个不等于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;
}