c语言double类型不能用%d输出,会出错

作者&投稿:春娅 (若有异议请与网页底部的电邮联系)
c语言double型数据输出错误有什么问题~

#includemain(){ int a=1,n,i=1,r; double sum=0,b=2,x; printf("Please input an integer:"); scanf("%d",&n); while(i<=n){ x=b/a;//这里你原来是2/1,结果是2,是int型,所以我把b也换了。 sum=sum+x; r=a+b; a=b; b=r; i++;} printf("The result is %lf",sum); return 0;}

C语言里面float数据用printf(“%d”)输出是0,是float数据使用错误造成的,解决方法如下:
1、首先在电脑中打开C-Free 5编译器(界面) -> 文件 -> 新建(Ctrl+N)。

2、然后输入下图所示代码。

3、编译成功后的截图。如果编译失败,请检查语法或者编译器是否有问题。

4、程序运行截图(开始和结束)。使用了之后没有system("cls");那么闪烁。system("cls");会清空屏幕上所有的信息。

5、最后输出结束,如下图所示就完成了。

printf:限定符:
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
%p 输出地址符

可以在"%"和字母之间加小写字母l, 表示输出的是长型数。
例如: %ld 表示输出long整数
%lf 表示输出double浮点数

你用%d去输出Double型的j,输出当然不对啊

输出格式 定义了 计算机 内存单元里的信息 怎样 转 换 为 人类可识别 的 数值 和 字符形状 输出出来。
计算机 内存单元里的信息 安排方式 由 IEEE 国际 标准 规定 --
double 有几个字节,分成多少字元,哪位是符号位,哪几位是 指数,哪几位 是 尾数。
int 有几个字节,分成多少字元,哪位是符号位,哪几位 是数值,是原码,还是 补码。
输出时,把 内存单元里的信息 要 翻译成 人类可识别 的形式。
输出格式 %d 定义了 按 int 型 符号位,数值位,判断是原码,还是 补码 翻译。
输出格式 %lf 定义了 按 double 型 符号位,指数,尾数 翻译。
所以,输出格式 定义了 内存单元里的信息 如何翻译。
double 型 内存信息 按 int 型 符号位,数值位,判断是原码,还是 补码 翻译,当然错了。
IEEE 754 标准 可以网上查到,阅读起来要费些时间,读懂会用,要几天工夫。

额,double型的存储形式和int的不一样


double是计算机语言的什么类型?
声明double 类型的变量:double puotient。初始化double 类型的变量:puotient = 5.621456873;double puotinet = 5.62。概括:C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为-1.7E308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证,而单精度保证...

c中double是什么意思(c语言中double是什么意思)
c语言中double是什么意思 double是C语言的一个关键字,代表双精度浮点型。占8个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证。可以用格式化输入输出语句scanf和printf进行double类型的输入输出,格式化字符为%lf。定义doublea;可以用...

c语言中double是什么意思
1、double是C语言的一个关键字,代表双精度浮点型。2、从存储结构和算法上来讲,double是64位的,所以double能存储更高的精度。3、目前C\/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示。4、由于通常C编译器默认浮点数是double...

c语言中int和double的区别在哪里?
在c++中,int和double有以下几个区别:1、类型区别:int是定义的整型数据,如int a 则a的值只能是整型,比如a=3。double双精度浮点数,就是有小数点的数。2、在计算中的存储方式:int在32位计算机中占4个字节,这4个字节的在内存中存放的顺序为低字节存在低地址,高字节存在高地址。double是64位...

c语言double和float区别
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言特点:简洁的语言、具有结构化的控制语句、丰富的数据类型、丰富的运算符、可对物理地址进行直接操作、代码具有较好的可移植性、可生成高质量、目标代码执行效率高的程序。

c语言中double的意思
双精度浮点数。double类型的变量可以存储较大范围和精度的实数值,通常占用8个字节的存储空间。double类型的变量可以表示的最大值约为1.8×10^308,最小值约为2.2×10^-308,精度可以达到15到16位有效数字,比float类型的精度更高。double类型的变量可以进行加减乘除等基本的数学运算,也可以进行科学...

c语言中double类型值的大小比较
JAVA double类型比较大小 @org.junit.Test public void Test(){ BigDecimal big = new BigDecimal(1); BigDecimal Graphicprice = new BigDecimal(0.01);\/\/图文价格 BigDecimal Speechprice = new BigDecimal(0.02);\/\/语音价格 BigDecimal Videoprice = new BigDecimal(1);\/\/视频价格 ...

C语言double的用法?
double是一种数据类型 具有比float更高的精度 在32位机中以8个字节储存。用法:同int float 一样,用于声明变量或定义函数的返回值类型,或可用于类型强制转换。例: double a;\/\/变量声明 double sqrt_(double b);\/\/定义函数返回至类型及形参类型 c=(double)3;\/\/将“3”强制转换为...

double在c语言中的意思是什么?
double是C语言的一个关键字,代表双精度浮点型,占8个字节内存空间,其数值范围为“1.7E-308~1.7E+308”,双精度完全保证的有效数字是15位,16位只是部分数值有保证。C语言中,float和double都属于浮点数。区别在于:double所表示的范围,整数部分范围大于float,小数部分,精度也高于float。举个例子:...

C语言中double数据类型的有效数据范围是多少?
双精度浮点数(double)是计算机使用的一种数据类型,使用 64 位(8字节) 来存储一个浮点数。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是:1.7x10^-308 ~ 1.7x10^308。IEEE754为其定制标准。C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值...

凤凰县13111795237: C语言,int、float、double或long a,b,输入或输出时,全都为%d吗,还是有其它,麻烦列举一下 -
汗露运德:int %d float %f double %lf long %ld char %c string %s

凤凰县13111795237: C语言中在printf语句中,int型写成%d,float型写成%f,那double类型应该写成%什么? -
汗露运德: %lf代表(double,双精度浮点数),%f(float,代表单精度浮点数) 没有long float,但是用了也可以,只是编译器会说它是不规范的延生.

凤凰县13111795237: C语言double用百分号什么 -
汗露运德: 输入语句用格式 %lf ( Long Float 的意思,字母 lf). 输出语句可用多种花样.%lf %e %f %g 都可以,看需要. 例如: #include main() { double d; scanf("%lf",&d); printf("%lf %e %f %g ", d,d,d,d); return 0; } 输入 1.23 输出 1.230000 1.230000e+000 1.230000 1.23

凤凰县13111795237: VC中double定义变量ascanf语句中用a=%d为什么出错?
汗露运德: double对应的是%lf,%d对应的是int类型,%f对应的是float类型.%ld对应的是long类型.类型不对应,肯定出错.

凤凰县13111795237: (c语言中)想知道double,int,%d和%f的关系 -
汗露运德: double 型是双精度浮点型,int 型是整型.浮点型与整型数据,在计算机内部的表达形式不同,浮点型由 数符,尾数,阶符,阶码四部分组成,double 型长度为64位.int 型由 数符和数组成,长度为32位.正因为如此,所以输入数据和输出数据...

凤凰县13111795237: c语言中 想输出double类型的 是%lf吗 不是的话应该是什么 -
汗露运德: 输出时都行. 但格式用在输入语句里,不能与float 的 %f混淆, double 必须用 %lf

凤凰县13111795237: C语言中double类型数据的输出与接收 -
汗露运德: #include<stdio.h>头文件...你输入输出头文件都没. scanf("%lf",&a);因为你是双精度.

凤凰县13111795237: 在Vc++C语言程序里,对于字符输出的用 %c 对于 double类型的数值对应的用什么 -
汗露运德: 整型和浮点型是不同的存储方式,当然不能用同一个格式输出.double输出格式是lf%

凤凰县13111795237: C语言double 型 只能在有小数点的数时候用吗? -
汗露运德: 你在定义变量时用的是double而在scanf()中用的是%d导致类型不匹配,所以会出现编译错误,你可以将double改为int或者将%d改为%f这样就OK了!!希望对你有用!!!

凤凰县13111795237: 谁能跟我解释一下c语言的精度是怎么回事,比如说我用double的时候就被限制不用%d,、,不懂 -
汗露运德: 多看看书,%d是int型的

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网