c语言long double输入格式,DEV-C++ 中用printf() 如何输出12字节的 long double 类型数据?...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在dev-c++5.7.1中,程序如下:

#include

int main(void)

{

float a=9876543210123456789.0;

double b=9876543210123456789.0,d;

long double c=9876543210123456789.0;

d=(double)c;

printf("float is %2dB\n",sizeof(float));

printf("double is %2dB\n",sizeof(double));

printf("long double is %2dB\n",sizeof(long double));

printf("float a = %30.10f\n",a);

printf("double b = %30.10lf\n",b);

printf("long double c = %30.10Lf\n",c);

printf("double d = c = %30.10Lf\n",d);

}

运行结果为:

float is 4B

double is 8B

long dlouble is 12B

float a=9876543516404875300.0000000000

double b=9876543210123456500.0000000000

long dlouble c= -0.0000000000

double d = c = 9876543210123456500.0000000000

从结果和其它尝试可知:

(1)long dlouble 是12字节的浮点数,存储的数据正确,但是用printf()函数无法输出?

(2)尝试过用%lg、%le等格式均不能正确输出。

(3)此程序在VC++6.0中运行正常,但是VC++6.0中long dlouble是8字节长的,实际为double型数据,不能回答本问题。

试问:用printf() 如何输出12字节的 long double 类型数据?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL许可协议分发源代码。它集合了MinGW等众多自由软件,并且可以取得最新版本的各种工具支持,而这一切工作都是来自全球的狂热者所做的工作。Dev-C++是NOI、NOIP等比赛的指定工具,缺点是Debug功能弱。 C/C++ 集成开发环境(IDE) DEV-C++ 中文版C/C++ 集成开发环境(IDE) DEV-C++ 中文版 Dev-C++使用MingW64/TDM-GCC编译器,遵循C++ 11标准,同时兼容C++98标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!多国语言版中包含简繁体中文语言界面及技巧提示,还有英语、俄语、法语、德语、意大 利语等二十多个国家和地区语言提供选择。该软件采用 Delphi 开发。 C++是从C语言中发展而来的。C语言是1972年由美国贝尔实验室(AT&TBell)的D.M.Ritchie研制成功的。它不是为了初学者设计的,而是为计算机专业人员设计的。最初它是作为写UNIX操作系统的一种工具,在贝尔实验室内部使用。后来C语言不断改进,人们发现它功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多优点,免费适合于写系统软件,因此C语言从实验室走向美国,从美国走向世界。到20世纪70年代,它已风靡全世界。无论是在中国还是在外国,C语言都成为了计算机开发人员的基本功。 但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。C语言是结构化和模块化的语言,它是面向过程的。在处理较小规模的程序时,程序员用C语言还是比较得心应手。但是当问题比较复杂、程序的规模比较大时,结构化程序的设计方法就显出它的不足。 为了解决软件设计的危机,在20世纪80年代,人们提出了面向对象的程序设计(object oriented programming,OOP),需要设计出能支持面向对象的程序设计方法的新的语言。在实践中,人们发现由于C语言是如此的深入人心,使用如此广泛,面对程序设计方法的革命,最好的办法不是另外发明一种语言去代替它,而是在它原有的基础上加以发展。在这种形式下,C++应运而生。C++是由贝尔实验室(AT&TBell)的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。 AT&TBell发布的第一个Dev-C++编译系统实际上是一个预编译器(前端编译器),真正的Dev-C++程序是在1988年诞生的。 C++中提供丰富的STL模板库,不仅适合算法竞赛,同样适合软件开发。
### 回答1: C语言中的long double类型可以用于存储更大范围的浮点数,其输入输出方式与其他浮点数类型类似。 输入long double类型数据可以使用scanf函数,格式化字符串为"%Lf",例如: long double num; scanf("%Lf", &num); 输出long double类型数据可以使用printf函数,格式化字符串为"%Lf",例如: long double num = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679L; printf("num = %Lf\n", num); 注意,在输出long double类型数据时,需要在数字后面加上字母L,表示这是一个long double类型数据。 ### 回答2: 在C语言中,long double是一种基本的浮点数据类型,它通常被用来处理双精度浮点数。与其他浮点数据类型相比,long double的精度更高,它通常占用更多的内存空间,通常占用16个字节的存储空间。 在C语言中,我们可以使用scanf()函数来接收long double类型输入,使用printf()函数来输出long double类型数据。在使用scanf()函数时,我们需要使用格式说明符“%Lf”,“%Lg”或“%Le”来指示输入数据类型long double。同样,在使用printf()函数时,我们也需要使用相应的格式说明符来进行输出。 例如,以下是一个使用scanf()函数和printf()函数来输入输出long double类型数据的示例: ``` #include <stdio.h> int main() { long double num1, num2, sum; printf("请输入两个long double类型数据:"); scanf("%Lf %Lf", &num1, &num2); sum = num1 + num2; printf("输入数据是:%.10Lf 和 %.10Lf\n", num1, num2); printf("它们的和为:%.10Lf\n", sum); return 0; } ``` 在上面的示例中,我们首先声明了三个long double类型的变量num1、num2和sum。然后,我们使用scanf()函数来接收从键盘输入的两个long double类型数据。接着,我们将num1和num2的和赋值给sum变量。最后,我们使用printf()函数来输出输入数据和它们的和,保留小数点后10位。 总之,在C语言中,long double数据类型可以很方便地进行输入输出,只需要使用与其他数据类型相同的输入输出函数,并且使用相应的格式说明符。 ### 回答3: long doubleC语言中的一种基本数据类型,通常用于存储需要高精度计算的数据,例如科学计算、金融计算等。在C语言中,我们可以使用scanf和printf函数来进行long double类型输入输出。 对于输入,我们需要使用"%Lf"格式控制符,例如: long double x; scanf("%Lf", &x); 在使用scanf函数时,我们需要注意以下几点: 1. 必须使用大写字母L来表示long double类型,否则会按照double类型进行解析。 2. 如果输入数据long double类型的范围还大,程序会产生溢出错误。 3. 在输入long double类型数据时,我们需要注意输入数据的精度,过高或者过低的精度可能会导致精度误差。 对于输出,我们同样需要使用"%Lf"格式控制符,例如: long double x = 3.1415926535; printf("%.10Lf\n", x); 在使用printf函数时,我们需要注意以下几点: 1. 必须使用大写字母L来表示long double类型,否则会按照double类型进行输出。 2. 在输出long double类型数据时,我们需要注意输出的精度,过高或者过低的精度可能会导致精度误差。 总结: C语言long double类型输入输出非常类似于double类型输入输出,我们只需要在格式控制符中加上大小写字母L即可。需要注意的是,long double类型的精度非常高,我们在使用时需要小心。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值