関数呼び出しでスタックに仮引数がのるときには、浮動小数点数は double に変換されることを考えると、printf() に %lf という指定をするのは意味がないと思います。