[音乐播放] ROB BOWDEN:你好。 我抢。 并让我们贪婪。 所以,首先我们需要做的 究竟是如何询问用户 太大的变化是欠。 所以在这里,我们看到我们有 一个do / while循环。 我们正在制定计 等于GetFloat。 什么是GetFloat? 它在功能之一 CS50库,得到了 浮来自用户。 记住,为了使用该功能, 我们需要包括散列 CS50.h在顶部。 所以一旦我们有了这个值从 用户,我们还需要确保 这是一个有效的值。 我们不能欠负钱。 所以这就是目的 这点做的/ while循环。 我们继续循环,同时美元 小于零。 和一个do / while循环是正确的事情 用在这里,因为我们需要问的 用户至少一次对如何 多少钱是欠。 所以一旦我们有一些美元, 我们在这里看到我们有整型仙 等于一轮美元时代 CENTS_PER_DOLLAR。 在顶部,我们看到, CENTS_PER_DOLLAR是 明智地定义为100。 那么,什么是这条线在做什么? 好吧,如果你还记得,浮点 价值观是不太准确的。 不同于整数,我们不能代表 浮点值完全相同。 总有某种 的不精确性。 因此,我们更愿意与刚刚整数合作 贯穿这一问题。 这里,如果用户输入的3.42美元, 我们正在转换,为342美分, 舍入,刚刚摆脱的 任何不准确的。 所以一旦我们有仙数 一个整数,我们可以继续 其余的程序。 我们在这里看到,我们正在申报整数 硬币的,我们只使用 以保持总的轨道 硬币的数目。 在这里,我们有我们的第一个while循环。 我们看到虽然美分大于或 等于四分之一,这上面,是哈希 定义为25,而这是真的,我们 想要增加我们的硬币数 和按季度递减美分。 请记住,此语法 等效于分 等于美分减去四分之一。 那些是相同的。 那么,什么是这个while循环在做什么? 这里的想法是,如果我知道3.42美元 欠,我可以继续给 宿舍,直到我不能给 宿舍了。 我不能给任何四分之三以上, 一旦我给3.25美元。 那么,曾经是那样的话,我们会 打破这个while循环。 仙将在17美分留。 我们会继续到下一个 while循环在这里我们说的,而仙 大于或等于一角。 现在我们正在做完全相同的 事情我们做的季度情况下, 除非角钱。 因此,与0.17美元,我们将循环,直到我们可以 不再给一毛钱,这是 一次。 然后我们会留下7美分。 然后,我们将继续为镍,其中 将循环,直到我们不能给 任何更多的镍,这将 留给我们的两分钱。 然后,向下在下面,我们也 便士,这将循环和意志 最后留给我们的零美分。 那么,在年底,我们只需要 打印出我们的硬币数量。 所以,这个方案是完全正确的。 但是,我们其实可以做的更好一点。 现在,如果我说,我欠你一万元 你不应该需要去这里有一个 季度,两个季度,三季度。 你应该马上知道 我欠你40,000宿舍。 现在,让我们来看看一个程序, 处理它好一点。 在这个版本中的东西,我们仍然需要 索要的金额用户 改变,他们希望在完全相同 我们之前也做了同样的方式。 我们需要四舍五入它的确切 途中我们以前那样。 我们仍然有我们的硬币整数 宣布完全和以前一样。 因此,这里是那里的东西 会有点不同。 我们正在做的硬币加上等号 仙按季度划分 其中四分之一是25。 这有什么要说的是,把尽可能多的 宿舍为可以进入美分,并添加 该硬币。 所以,如果仙是142,142分 25给我们5。 请记住,整数除法 自动截断。 因此,我们正在做的硬币加等于5。 紧接着,我们在说 美分等于美分MOD季度。 请记住,MOD经营者给 我们相除后的余数。 所以142 MOD季度,这将使 是142减去125,它是17。 这之后的余 做142除以25。 所以,现在美分等于17。 和我们做同样的确切 对于助攻的事情。 17除以10将给我们1。 我们添加到硬币。 然后我们更新美分,至 是17模10,它是7。 然后相同的镍。 7除以5是1。 补充一点,到硬币。 然后7模5是2。 这就是我们美分。 然后,挣点小钱,没有真正的 点分割或改装,因为, 如果我们有0.2美元遗留下来的,我们可以 只是马上补充说,到 我们的硬币数量。 最后,我们需要打印出我们的 硬币的数目和任选 返回0,在我们节目的最后 来表示一切正常。 我的名字是罗布。 这是贪婪的。 [音乐播放]