我无法弄清楚为什么这对90%的输入起作用,而不是其他输入.这是为了告诉你在变化中会得到多少硬币.大多数测试数量都可以正常工作,但是如果输入4.20(或4.20美元),它将返回23个硬币......应该是18个硬币(16个季度和2个镍币).这个bug在哪里?这是我的代码:
#include <stdio.h>
#include <cs50.h>
int main(void){
float change = 0.00;
printf("How much change is owed? ");
change = GetFloat();
float quarters = change/.25;
change-= (int)quarters*.25;
float dimes = change/.10;
change-= (int)dimes*.10;
float nickels = change/.05;
change-= (int)nickels*.05;
float pennies = (change+.005)/.01;
change-=(int)pennies*.01;
int total = (int)quarters+(int)dimes+(int)nickels+(int)pennies;
printf("%d\n", total);
return 0;
}
Run Code Online (Sandbox Code Playgroud)