C语言中如何用scanf语句输入一个双精度数?

#include<stdio.h>
void main()
{
double x;
printf("输入一个双精度数x0=");
scanf("%1f",&x);
printf("x1=%f\n",x);
}
/*例如:输入x0=123.456,输出x1却是随机数;问题出在哪呀?*/

主要通过scanf格式化输入语句,主要代码如下,
double x;//声明变量
scanf("%lf",&x);//赋值,L/l 长度修饰符,输入"长"数据,对应double
printf("x=%lf\n",x);//打印输出

int scanf(const char *format,...);是格式输入函数,即按用户指定的格式把数据输入到指定的变量之中。需要注意的是,针对浮点数scanf()函数中没有精度控制,像 scanf("%5.4lf",&x); 就是非法的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-10
编程要心很细,0与O,1与l不能搞错的
scanf("%1f",&x); // %f中的不是数字一,而是小写L,本回答被提问者采纳
第2个回答  2011-05-10
scanf("%lf",&x);
printf("x1=%lf\n",x);
记住double的格式控制符是%lf,不是1f也不是f
第3个回答  2011-05-10
#include<stdio.h>
void main()
{
double x;
printf("输入一个双精度数x0=");
scanf("%lf",&x);//不是1f,是L(小写)
printf("x1=%f\n",x);
}
第4个回答  2011-05-10
lf 你写成 1f了?
下面那个 f也改成lf
试试