因此,我在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;
}
答案 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++;