double d;
scanf("%f", &d);
printf("%f", d);
结果:
输入:10.3
输出:0.00000
为什么呢?我认为输出应该是10.3 视觉工作室2008。
答案 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
)。