2

このプログラムは、入出力セクションのK&Rのプログラムに基づいています。

#include <stdio.h>


 main(){

double sum, v;

sum = 0;

while (scanf("%1f",&v)==1)
    printf("\t%.2f\n",sum+=v);
return 0;
}

コンパイルは問題ありません。しかし、実行しようとすると、どの入力からも出力は「-NAN」であり、おそらく数値ではありません。理由はわかりません。何かアドバイスをいただければ幸いです。

4

3 に答える 3

6

scanfのフォーマットコードが間違っています。%lfではなく(小文字のLで)する必要があり%1fます。

 while (scanf("%lf",&v)==1)

これは%lf、ダブルを%fスキャンし、フロートをスキャンするためです。詳細については、scanfフォーマットコードを参照してください。

于 2011-02-16T00:40:49.030 に答える
0

ダブルをフロートに変えてみてください。

于 2011-02-16T00:40:55.243 に答える
0
scanf("%1f",&v)

あなたはフロートを読んでいますが、あなたの変数はダブルです。試す:

scanf("%lf",&v)
于 2011-02-16T00:41:16.663 に答える