-1

次のコードがあります。

    int main(void)
{
    double r;
    scanf("lf",&r);
    printf("%lf\n",r);
}

入力した値はどれも、約 40 ~ 50 桁の意味のない数字を返します。scanf は、文字、整数、文字列などで正常に動作しますが、double ではこの問題が発生します。誰でも私を助けることができますか?

4

6 に答える 6

4

書式文字列にパーセント ( %) 記号がありません。次のようにする必要があります。

scanf("%lf", &r);

次に、戻り値のチェックを追加する必要があります。これは、先ほど学んだように、I/O は脆弱で失敗する可能性があるためです。rしたがって、スキャンが機能していることを確認していない限り、有効な値が含まれていることに依存するのは間違っています。

if(scanf("%lf", &r) == 1)
{
  print("got the double %g\n", r);
}
else
{
  printf("**Failed to read a double value!\n");
}
于 2013-11-25T12:51:12.910 に答える
4
scanf("lf",&r);

する必要があります

scanf("%lf",&r);
于 2013-11-25T12:46:56.117 に答える
3

%lf読み込むときに必要です。

于 2013-11-25T12:46:48.627 に答える
3

試す

scanf("%lf",&r);

を入れるのを忘れていました%

于 2013-11-25T12:47:05.873 に答える
0

%あなたは前に忘れましたlf

scanf("%lf", &yourDouble);
于 2013-11-25T13:28:59.087 に答える