Я получаю ошибку Nan при выполнении циклов - PullRequest
0 голосов
/ 11 января 2019

Итак, я использую xcode на Mac и создал программу, которая в основном выполняет простую математику с введенными пользователем значениями и продолжает цикл, пока он не прерывается. В конце цикла (после его разрыва) я хочу вывести общее среднее значение (так что сделайте еще немного математики). Я использую счетчик и сумму переменных, чтобы сделать это. Однако при выводе я получаю ошибку «nan», когда должен отображаться конец цикла и общее среднее значение. Может кто-нибудь помочь, пожалуйста? : /

int main () {

double gallons=0;
double miles=0;
double sum=0;
int count=0;

while (gallons>=0) {

    sum+=(miles/gallons);
    count++;

    printf("\nEnter the gallons used (-1 to end): ");
    scanf("%lf",&gallons);

    if (gallons<0)
        break;

    printf("Enter the miles driven: ");
    scanf("%lf",&miles);

    if (miles<0)
        break;

    printf("The miles/gallon for this tank was: %lf", miles/gallons);

}

if (gallons<0) {

    printf("The average is: %lf", sum/(count-1));
}

return 0;

}

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Hm. На первой итерации в sum+=(miles/gallons); вы пытаетесь добавить к sum значение 0/0. Итак, я думаю, что вам нужно переместить это дополнение после ввода . Что-то вроде

printf("\nEnter the gallons used (-1 to end): ");
scanf("%lf",&gallons);

if (gallons<0)
    break;

printf("Enter the miles driven: ");
scanf("%lf",&miles);

if (miles<0)
    break;

printf("The miles/gallon for this tank was: %lf", miles/gallons);
sum+=(miles/gallons);
count++;
0 голосов
/ 11 января 2019
double gallons=0;
double miles=0;
…
sum+=(miles/gallons);

При делении нуля на ноль получается NaN. Как только есть NaN, любая арифметика с ним также производит NaN.

...