我正在尝试使用单个错误检查功能来检查多个其他功能中的错误。但是,在运行该程序时,它陷入了一个循环,不会中断。应用程序获得有效输入后,应继续下一个功能。但是,即使错误检查返回0,它也会重复fStartBalance函数。我是个初学者,所以我不太擅长故障排除。这是适用的代码:
/* Begin fValidateFloat */
int fValidateFloat(float input, float minValue, float maxValue)
{
int failed = 0;
while (input < minValue)
{
printf("\nError: Input too low, please enter a value greater than or equal to %.2f.", minValue);
failed = 1;
return failed;
}
while (input > maxValue)
{
printf("\nError: Input too high, please enter a value less than or equal to %.2f.", maxValue);
failed = 1;
return failed;
}
} /* End fValidateFloat */
/* Begin fStartBalance */
float fStartBalance(void)
{
float startBalance; /* Declare variable */
int failed;
while (failed = 1)
{
printf("\n\nNow enter your current balance in dollars and cents: "); /* Prompt user to input current balance */
scanf("%f", &startBalance);
fflush(stdin);
failed = fValidateFloat(startBalance, 0, 3.4e+38);
}
return startBalance; /* Return variable */
} /* End fStartBalance */
谢谢你的帮助。
fflush(stdin);
未定义
fValidateFloat()
在不采用while语句的情况下,您永远不会返回任何值:
return failed;
}
} /* End fValidateFloat */
在同一个函数中,while循环毫无意义,请使用if语句:
while (input < minValue)
{
printf("\nError: Input too low, please enter a value grea%.2f.", minValue);
failed = 1;
return failed;
}
在while循环中将失败设置为1,而不是将其与1进行比较:
while (failed = 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句