1. ホーム
  2. c

[解決済み] printf()は"%f "でいいのに、なぜscanf()は倍数のために"%lf "が必要なのですか?

2022-04-15 11:10:09

質問

なぜ scanf() が必要です。 l を"で表示します。 %lf を読み込むと double の場合 printf() は " を使用することができます。 %f は、その引数が double または float ?

コード例です。

double d;
scanf("%lf", &d);
printf("%f", d);

解決方法は?

C言語では、変数引数を取る関数では、floatをdoubleに昇格させるからです。ポインターは昇格されないので、その場合は %lf , %lg または %le (または %la C99では2倍で読みます)。