[MUSIC SPIEL] ROB BOWDEN: Hallo. Ich bin Rob. Und lassen Sie uns Greedy. Das erste, was wir tun müssen, wird der Benutzer genau, wie Fragen viel Veränderung geschuldet ist. So, hier sehen wir, wir haben a do / while-Schleife. Und wir Einstellung Dollar gleich GetFloat. Was ist GetFloat? Es ist eine der Funktionen in der CS50-Bibliothek, die eine bekommt Schwimmer von dem Benutzer. Erinnern Sie sich, um diese Funktion zu nutzen, wir brauchen, um Hash enthalten CS50.h an der Spitze. Also noch haben wir diesen Wert aus der Benutzer, müssen wir auch sicher sein, dass es ist ein gültiger Wert. Wir können negativ Geld schulde. Und damit ist der Zweck dieser do / while-Schleife. Wir sind weiterhin Schleife während Dollar kleiner als Null ist. Und eine do / while-Schleife ist das Richtige hier benutzen, da wir stellen müssen, die Benutzer mindestens einmal, wie viel Geld geschuldet. Also, wenn wir diese Zahl der Dollar, wir hier sehen, haben wir int Cent Runde gleich mal Dollar CENTS_PER_DOLLAR. An der Spitze sehen wir, dass CENTS_PER_DOLLAR ist vernünftig als 100 definiert. Also, was ist diese Linie zu tun? Nun, wenn Sie sich erinnern, Floating-Point- Werte sind nicht ganz präzise. Anders als ganze Zahlen, die wir nicht darstellen kann Fließkommawerte genau. Es gibt immer eine Art Ungenauigkeit. Wir lieber nur mit ganzen Zahlen arbeiten während dieses Problem. Und wenn der Benutzer eingesetzt $ 3.42 wir, dass die Umwandlung auf 342 Cent und Runden, nur loswerden jede dieser Ungenauigkeit. Also, wenn wir die Anzahl der in Cent eine ganze Zahl, können wir mit der weiter Rest des Programms. Wir sehen hier, dass wir erklären, integer Münzen, die wir nur zu benutzen den Überblick über die Gesamt halten Anzahl der Münzen. Hier haben wir unsere erste while-Schleife. Wir sehen, während Cent größer oder gleich Quartal, das oben, ist Hash definiert als 25, während das wahr ist, wir wollen unsere Anzahl von Münzen zu erhöhen und Abnahme Cent pro Quartal. Denken Sie daran, dass diese Syntax entspricht Cent gleich Cent minus Quartal. Dies sind die gleichen. Also, was ist diese while-Schleife zu tun? Die Idee hier ist, dass, wenn ich weiß, 3,42 $ geschuldet ist, kann ich auch weiterhin geben Viertel, bis ich nicht geben kann Viertel mehr. Kann ich nicht geben Quartale nicht mehr, sobald ich 3,25 $ angegeben. Also dann, sobald das der Fall ist, werden wir brechen aus dieser while-Schleife. Cent wird bei 17 Cent bleiben. Und wir werden an die nächste weiter while-Schleife, wo wir sagen, während Cent größer als oder gleich Cent. Und jetzt sind wir dabei exakt das gleiche was haben wir in diesem Quartal Fall außer mit Groschen. Also mit 0,17 $, werden wir Schleife, bis wir können einen Cent, das ist nicht mehr zu geben genau einmal. Und dann werden wir mit 7 Cent gelassen werden. Dann werden wir weiter nach Nickels, die wird Schleife, bis wir nicht geben kann noch mehr Nickels, was wird Lassen Sie uns mit zwei Cent. Und dann, unten am Boden, haben wir Pfennige, die in einer Schleife und wird schließlich lassen uns mit Null-Cent. Dann am Ende, wir müssen nur drucken Sie unsere Anzahl von Münzen. Also das Programm ist vollkommen richtig. Aber wir können tatsächlich etwas besser. Nun, wenn ich sage, dass ich Ihnen schulde $ 10.000, Sie sollten nicht gehen müssen, hier ist eine Viertel, zwei Viertel, drei Viertel. Sie sollten sofort wissen, dass Ich schulde Ihnen 40.000 Quartale. Jetzt schauen wir uns an einem Programm, das wickelt es ein bisschen besser. In dieser Version der Dinge müssen wir immer noch den Benutzer nach der Menge der Fragen verändern, dass sie in genau wollen die gleiche Art, wie wir zuvor. Wir müssen es genau runden die Art und Weise haben wir vor. Und wir haben noch unsere Münzen ganzzahlige genau erklärt die gleiche wie zuvor. Also hier ist, wo die Dinge ein bisschen anders. Wir tun Münzen und equals Cent geteilt durch Quartal wo Quartal 25. Was dies sagt, ist, nehmen Sie so viele Viertel wie in Cent und fügen dass auf Münzen. Also, wenn Cent beträgt 142, 142 geteilt 25 gibt uns fünf. Beachten Sie, dass Integer-Division automatisch abgeschnitten. Also werden wir tun, Münzen und gleich 5. Unmittelbar danach werden wir sagen, Cent gleich Cent mod Quartal. Denken Sie daran, dass der Mod-Operator gibt uns der Rest nach der Teilung. Also 142 mod Quartal, das wird ist 142 minus 125, die 17 ist. Das ist der Rest nach Dabei 142 geteilt durch 25. So, jetzt ist Cent gleich 17. Und wir tun exakt das gleiche Sache für Groschen. 17 geteilt durch 10 wird uns ein. Und wir fügen hinzu, dass auf Münzen. Und dann haben wir Cent zu aktualisieren, um sein 17 mod 10, die 7 ist. Und dann die gleiche für Nickel. 7 geteilt durch 5 gleich 1 ist. Hinzufügen, dass Münzen. Und dann 7 mod 5 2 ist. Und das ist unser Cent. Und dann, für ein paar Cent, gibt es keinen wirklichen Punkt in Trenn oder Modding, da, wenn wir 0,2 $ übrig, wir können nur sofort hinzufügen, dass unsere Anzahl von Münzen. Und schließlich müssen wir unsere ausdrucken Anzahl von Münzen, und gegebenenfalls return 0 am Ende unseres Programms alles bedeuten gearbeitet. Mein Name ist Rob. Und das war gierig. [MUSIC SPIEL]