[c] Why does scanf() need "%lf" for doubles, when printf() is okay with just "%f"?