C语言输出浮点数的符号、整数部分和小数部分

时间:2025-03-13 09:42:34

C语言输出浮点数的符号、整数部分和小数部分
编写程序,从键盘输入一个不等于0的浮点数,然后分别输出这个浮点数的符号、整数部分和小数部分。例如输入-123.456,输出应该是(按下列格式输出):
Sign:-
Integral part:123
Decimal fraction part:0.456000

// 方法一:用abs求绝对值和int取整和三目运算符
#include ""
#include ""
int main()
{
	double a;
	int b;
	double c;
	scanf("%lf",&a);
	printf("sign:%c\n",a <0?'-': '+');
	b=abs((int)a);
	printf("integral part:%d\n",b);
	c=a>0? a-b:fabs((a+b));
	printf("decimal fraction part:%lf\n",c);
}
// 方法二:用abs求绝对值和int取整和if判断
#include ""
#include ""
int main()
{
	double a;
    scanf("%lf",&a);
    if (a<0)
    {
        printf("sign:-\n");
        printf("integral part:%d\n",abs(int(a)));
        printf("decimal fraction part:%f",abs(a-int(a)));
    }
    else
    {
        printf("sign:+\n");
        printf("integral part:%d\n",abs(int(a)));
        printf("decimal fraction part:%f",abs(a-int(a)));
    }
}
// 方法三:用int取整和if判断
#include <>
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);
    }
}
// 方法四:
#include <>
int main()
{
	double a;
    int b;
    scanf("%lf",&a);
    b = a;
    if (a<0)
    {
        printf("sign:-\n");
        printf("integral part:%d\n",b*-1);
      if (a-b==0)
      {
        printf("decimal fraction part:%f",(a-b));
      }
      else
      {
        printf("decimal fraction part:%f",(a-b)*-1);
      }
    }
    else
    {
        printf("sign:+\n");
        printf("integral part:%d\n",b);
        printf("decimal fraction part:%f",(a-b));
    }
}

相关文章