%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。 其中: float是单精度浮点型,对应%f. double是双精度浮点型,对应%lf.
在用于输出时:float类型可以使用%lf格式,但不会有任何好处。 double类型如果使用了%f格式可能会导致输出错误。 (printf中一般可以用%f代替%If)
在用于输入时:double类型使用了%f格式,会导致输入值错误。 float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。 (scanf中%lf与%f是严格区分的)