#include <stdio.h>
int main() {
float change = 0.0;
printf("O hai! ");
while (change <= 0) {
printf("How much change is owed?\n");
scanf("%f\n", &change);
}
return 0;
}
如果输入是负数,结果是无穷无尽的“欠多少变化?”while循环不执行scanf()
无法重现:如果输入负数,我只会发生一次“欠多少变化?”,而不是无穷无尽的系列。 – Evert
它也要求正数的两倍。更改'scanf(“%f \ n”,&change);'==>'scanf(“%f”,&change);' –
步骤1,带有任何'scanf()'问题:测试它的返回值, scanf(“%f”,&change)!= 1)print_ErrorAndQuit()' – chux