cs50 pset1 cash -greedy challenge

时间:2018-05-16 06:05:23

标签: c cs50

这是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);
}

0 个答案:

没有答案