C中的输入输出

时间:2010-03-07 10:01:46

标签: c floating-point printf

double d;
scanf("%f", &d);
printf("%f", d);

结果:

  

输入:10.3

     

输出:0.00000

为什么呢?我认为输出应该是10.3 视觉工作室2008。

2 个答案:

答案 0 :(得分:8)

对于scanf()%f适用于float。对于double,您需要%lf。所以,

#include <stdio.h>
main() {
    double d; 
    scanf("%lf", &d); 
    printf("%f\n", d);
}
输入10.3

会产生10.300000

答案 1 :(得分:1)

尝试将%f替换为%lf。在处理%f时使用float,而不是double。 (或者,您可以将d设为float)。