这是cs50中存在的问题
实施一个程序,计算给用户更改所需的最小硬币数。
问题的输出是给用户的硬币数量。我制作程序并且它几乎完美地工作但是4.2美元输出是22但它应该是18.其他每个值都是输出是正确的。 任何人都能说出这段代码有什么问题吗?
#include<stdio.h>
#include<cs50.h>
int main(void)
{
float change_owed, change_owed_in_hundreds;
int number_of_coins_to_be_given = 0;
do
{
printf("enter the positve ammount of change owed in dollars");
change_owed = get_float();
}while(c < 0);
change_owed_in_hundreds = change_owed * 100;
while(change_owed_in_hundreds >= 25){
change_owed_in_hundreds = change_owed_in_hundreds - 25;
number_of_coins_to_be_given++;
}
while(change_owed_in_hundreds >= 10) {
change_owed_in_hundreds = change_owed_in_hundreds - 10;
number_of_coins_to_be_given++;
}
while(change_owed_in_hundreds >= 5) {
change_owed_in_hundreds = change_owed_in_hundreds - 5;
number_of_coins_to_be_given++;
}
while(change_owed_in_hundreds >= 1) {
change_owed_in_hundreds = change_owed_in_hundreds - 1;
number_of_coins_to_be_given++;
}
printf("%d\n", number_of_coins_to_be_given);
}