查看: 50|回覆: 0

[教程] C语言输出浮点数的符号以及整数部分和小数部分

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-12-28
發表於 2025-12-15 11:11:17 | 顯示全部樓層 |閲讀模式

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

编写程序,从键盘输入一个不等于0的浮点数,然后分别输出这个浮点数的符号、整数部分和小数部分。

例如输入-123.456,输出应该是(按下列格式输出):

Sign:-
Integral part:123
Decimal fraction part:0.456000

方法一:用abs求绝对值和int取整和三目运算符

#include "stdio.h"
#include "math.h"
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 "stdio.h"
#include "math.h"
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 <stdio.h>
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 <stdio.h>
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));
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。

您可能感兴趣的文章:
  • C语言中整数与浮点数的内存存储区别解析
  • C语言整数和浮点数在内存中的存储方法示例
  • C语言之浮点数的表示与储存方式
  • C语言之整数与浮点数运算的类型转换规则详解
  • C语言中的浮点数存储详解
  • 详解C语言整数和浮点数在内存中的存储
  • C语言详细分析浮点数在内存中的储存
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部