C语言中关于double型数据的输入

今天编程时发现一个问题:
void main()
{ double f;
scanf("%f",&f);
}
运行时发现这样定义并不能对变量f进行输入

这是为什么?
有没有什么方法可以实现double型数据的输入
各位大哥大姐帮帮忙,急!!!而且必须定义成double型

第1个回答  2006-05-16
这是一个初学者经常犯的一个错误,应该用%lf,因为double和float在内存分配上存在差异,所以用scanf函数进行输入的时候要加以区别。
第2个回答  推荐于2017-09-12
#include<stdio.h>
void main()
{
double f;
scanf("%lf",&f);
//printf("%lf",f);
}
这样就可以了本回答被提问者采纳
第3个回答  2006-05-16
#include<stdio.h>
void main()
{
float f;
scanf("%f",&f);
printf("%f\n",f);
getch();
}
第4个回答  2006-05-16
把“f”定义成“float”型的就好了
第5个回答  2006-05-16
我也有这个问题,留名关注一下-_-b

C语言怎样接收double类型变量输入
1、首先我们打开Dev C++软件,新建一个C语言项目,如下图所示 2、接下来在C语言文件中通过scanf让用户输入数字,接着在打印数字,注意这里用的lf接收double数据类型,如下图所示 3、然后我们运行编写好的C语言文件,如下图所示 4、最后在弹出的CMD界面中我们就可以输入double类型的数据了,程序接收到数...

C语言,double类型的变量使用scanf()函数赋值后再使用printf()输出,为什 ...
c语言中double输入输出,都用 %lf 进行格式化,是否写成了 %f, 这个是float类型。include <stdio.h>int main(){ double d = 0; printf("intput a double:"); scanf("%lf", &d); printf("d = %lf\\n", d); return 0;} 2. 字符定义如下 字符对应数据类型含义 d \/ ...

写一段简单的c语言程序: 输入一个double类型的数,使它保留小数点后两位...
1 输入double类型数。2 利用取整,将第三位四舍五入。3 输出结果。注意,不可以直接以%.2lf输出,因为题目要求的是在程序中四舍五入处理,而不是仅仅输出四舍五入后的结果。代码:include <stdio.h>int main(){ double v; scanf("%lf",&v); v = (int)(v*100+0.5)\/100.0;...

c语言中double型数据是什么意思
比起单精度浮点数(float),double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。 它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308在C语言中, double 输入输出使用格式字符%l...

c语言编程,:求变一个程序,输入一个double型数据,经过运行后可以得到这个...
个位数为:3。Press any key to continue 123.44 个位数为:3。Press any key to continue include<stdio.h> include "string.h"main(void){ int nLen;char ge;char doub[50];gets(doub);nLen = strlen(doub);ge = doub[--nLen];for (;nLen>=0;nLen--){ if (doub[nLen]=='....

double输入输出精度
lf。double和float的精度是不同的,故存储空间也是不同的,所以如果要读入double类型,必须要用%lf来读入,以免精度丢失。而输出,由于printf中并无对%lf的严格定义,故使用%lf不一定会出现正确结果。由于c语言中的默认参数提升规则,%f输出的不论是float还是double都会被提升到双精度进行输出,并不会有...

为什么double类型输入(scanf)用%lf,输出(printf)用%f?
理解double类型输入(scanf)与输出(printf)分别使用%lf和%f的用法,关键在于理解float与double数据类型及其在内存中的存储方式。float和double是两种不同的浮点数类型。float是单精度浮点数,double是双精度浮点数,通常占用更多的内存空间,即double比float多4个字节。%f用于格式化float类型数据的输入和输出,而...

c语言double类型输出问题及字符输入问题
double要用%lf 你输入字符串时,肯定按了回车,而回车实际上输入了2个字符,第1个被用来确认scanf结束,还有一个仍然保留在了缓冲区内,被scanf("%c",&ch);读到了,这个字符是个控制字符,所以不可见.在任何读取字符的语句之前,你最好用fflush(stdin);来清空一下缓冲区....

scanf %e
C语言里输入double型数据要用%lf,输出用%e 将程序改成:double y;scanf("%lf",&y);printf("%e\\n",y);运行通过

C语言输入一个double类型数据,要求将该数保留一位小数,第二位进行四...
在C语言中输入一个double类型数据,将该数保留一位小数,第二位进行四舍五入,并将结果输出,这是很容易实现的,因为它自带的格式输出函数printf就可以轻松实现这一功能的:double x;scanf("%lf",&x);printf("%.2f\\n",x);

相似回答