scanf函数是通过指针指向变量的。
%f告诉scanf函数在所传地址位置上存储一个float型值, 而%lf告诉scanf函数在所传地址位置上存储一个double型值。
这里float和double的区别是非常重要的。
如果给出了错误的转换说明,那么scanf函数将可能存储错误的字节数量
(没有提到的是,float型的为模式可能不同于double型的位模式)。 Taku —— SegmentFault上的回答
输入时:
float型输入用%f
double型输入用%lf
输出时:
最好是都用%f输出
在G++中,double类型若用%lf输出可能会错,
而在C++中,double类型用%lf输出是正确的
printf() 函数中不存在 %lf。
总结:
输入 double 用 %lf 输出用 %f