Простая программа на C - PullRequest
2 голосов
/ 16 февраля 2011

Эта программа основана на программе в 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», предположительно НЕ НОМЕР. Понятия не имею почему. Любой совет будет оценен.

Ответы [ 3 ]

6 голосов
/ 16 февраля 2011

Неправильный код формата в scanf. Это должно быть %lf (с прописной буквой L), а не %1f.

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

Это потому, что %lf сканирует для двойного, а %f сканирует для поплавка. Подробнее см. коды формата scanf .

0 голосов
/ 16 февраля 2011
scanf("%1f",&v)

Вы читаете число с плавающей точкой, но ваша переменная является двойной.Попробуйте:

scanf("%lf",&v)
0 голосов
/ 16 февраля 2011

Попробуйте заменить двойное число на число с плавающей точкой.

...