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

 更新时间:2025年12月15日 11:11:17   作者:回忆式~过去.  
该C语言程序从键盘输入一个不等于0的浮点数,然后分别输出这个浮点数的符号(正负号)、整数部分和小数部分,例如输入-123.456,输出应为:Sign:- Integral part:123 Decimal fraction part:0.456000

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语言实现点菜系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C语言编程中生成随机数的入门教程

    C语言编程中生成随机数的入门教程

    这篇文章主要介绍了C语言编程中生成随机数的入门教程,包括利用rand()函数来编写随机数生成器的示例,要的朋友可以参考下
    2015-12-12
  • C++面向对象之类和对象那些你不知道的细节原理详解

    C++面向对象之类和对象那些你不知道的细节原理详解

    C++是面向对象编程的,这也是C++与C语言的最大区别,下面这篇文章主要给大家介绍了关于C++面向对象之类和对象的细节原理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • linux之awk命令的用法

    linux之awk命令的用法

    awk是一个非常棒的数字处理工具。相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个“字段”来处理。运行效率高,而且代码简单,对格式化的文本处理能力超强
    2013-10-10
  • C++ 11 nullptr 空指针示例详解

    C++ 11 nullptr 空指针示例详解

    C++11标准引入了nullptr来替代传统的NULL,解决了NULL可能导致的类型混淆问题,nullptr是nullptr_t类型的实例,专用于初始化空类型指针,与整型不会发生隐式转换,从而使代码更健壮,它可以被隐式转换为任意类型的指针,提高了代码的安全性和可读性
    2024-10-10
  • 用C语言实现从文本文件中读取数据后进行排序的功能

    用C语言实现从文本文件中读取数据后进行排序的功能

    这是一个十分可靠的程序,这个程序的查错能力非常强悍。程序包含了文件操作,归并排序和字符串输入等多种技术。对大家学习C语言很有帮助,有需要的一起来看看。
    2016-08-08
  • 详解C语言之预处理(下)

    详解C语言之预处理(下)

    这篇文章主要介绍了C语言程序的预处理,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助
    2021-11-11
  • 解决codeblocks致命错误:openssl/aes.h:没有这样的文件或目录问题

    解决codeblocks致命错误:openssl/aes.h:没有这样的文件或目录问题

    这篇文章主要介绍了解决codeblocks致命错误:openssl/aes.h:没有这样的文件或目录问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • C++实现自顶向下的归并排序算法

    C++实现自顶向下的归并排序算法

    这篇文章主要介绍了C++实现自顶向下的归并排序算法,结合实例详细分析了自顶向下的归并排序算法的原理与具体实现步骤,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • C/C++实现数字与字符串互相转换的多种方法

    C/C++实现数字与字符串互相转换的多种方法

    在C/C++程序中,会需要把数字与字符串做出互相转换的操作,用于实现程序想要的效果,下面将介绍多种方法实现数字与字符串互相转换,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-08-08

最新评论