做循环时出现错误

时间:2019-01-11 03:31:17

标签: loops nan

因此,我在Mac上使用xcode,并制作了一个程序,该程序基本上可以对用户输入的值进行简单的数学运算,并保持循环,除非被中断。在循环的结尾(一旦它被破坏了),我想打印出总平均值(做更多的数学运算)。我使用一个计数器并对变量求和。但是,在out输出中,当必须显示循环结束和整体平均值时,出现“ 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 :(得分:0)

double gallons=0;
double miles=0;
…
sum+=(miles/gallons);

将零除以零会产生NaN。一旦存在NaN,使用它的任何算术运算也会产生NaN。

答案 1 :(得分:0)

嗯。在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++;