如何编写此程序需要一些许可

时间:2015-04-09 02:03:37

标签: c

我正在阅读" C编程现代方法第2版"

其中一个练习是编写一个程序,在输入中输入,分解输入并显示使用了多少20美元的账单,10美元,5美元和1美元。它说 "要查找可以使用多少20美元,将总数除以20,然后将金额减去20美元账单的总价值,重复其他人"

所以,这就是我到目前为止所做的:

int main() {

    int amount, final, twenty, ten, five, one;

    printf("Enter the amount you'd like to use: ");
    scanf("%d", &amount);

    twenty = amount / 20;
    final = amount - (20 * twenty); // Amount is now 13

    ten = final / 10;
    final = 1 * ten;

    five = final / 5;
    final = 5 * five;

    one = final / 1;
    final = 1 * one;

    printf("$20 bills: %d\n", twenty);
    printf("$10 bills: %d\n", ten);
    printf("$5 bills: %d\n", five);
    printf("$1 bills: %d\n", one);


    return 0;
 }

所以我做的是:

93/4 = 4.65但截断为4. 4 * 20 = 80并且做了93 - 80,这给了我13.现在按照这些说明,我遇到了一些错误。我尝试同样的事情,但10美元的账单。 13/10 = 1.3但截断为1. 1 * 10 = 10 13 - 10 = 3我不知道如何实现它。最终算法"#34;我认为应该遵循与第一个相同的设置:

  

金额 - (20 * 20)//金额现在是13

但没有骰子。

老实说,我已经在这里工作了3个小时,而我无法做到,我真的很感激解释。

2 个答案:

答案 0 :(得分:0)

ten = final / 10;
final = 1 * ten;

这是逻辑错误。它应该是

ten = final / 10;
final -= ten * 10;

和5,1有类似的问题。

答案 1 :(得分:0)

您的每个号码检查实际上都应采用

的形式
noOfNUMBERBills = final / NUMBER;
final %= NUMBER;

NUMBER为5,10或20

立即阅读modulo(%),你的编程生涯需要十亿次。