>> [音樂播放]
>> 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，在我們節目的最後 來表示一切正常。
>> 我的名字是羅布。
這是貪婪的。
>> [音樂播放]