[음악 연주] ROB 보덴 : 안녕하세요. 롭 해요. 그리고 이제 욕심하세요. 그래서 첫 번째 것은 우리가해야 할 정확히 어떻게 사용자에게 요청합니다 많은 변화가 빚지고있다. 그래서 여기, 우리는 우리가 참조 DO / 루프 동안. 그리고 우리는 달러를 설정하고 GetFloat 동일. GetFloat는 무엇입니까? 그것은에있는 기능 중 하나입니다 를 가져옵니다 CS50 라이브러리 사용자로부터 떠. 이 기능을 사용하기 위해, 기억, 우리는 포함 해시해야 상단에 CS50.h. 그래서 일단 우리는에서 그 값이 사용자, 우리는 또한했는지 확인해야 그것은 유효한 값입니다. 우리는 음의 돈을 빚을 수 없습니다. 그리고 그 목적의 이 할 일의 / 루프 동안. 달러 동안 우리는 계속해서 반복 0보다 작습니다. 그리고 할 일 / 루프 동안 옳은 일 우리가 요청해야하기 때문에, 여기에 사용하는 방법에 대한 한 번 이상 사용자 많은 돈을 빚지고있다. 그래서 일단 우리는 달러의 번호를 가지고 우리는 우리가 INT 센트가 여기 참조 배의 달러 라운드에 해당 CENTS_PER_DOLLAR. 상단에, 우리는 볼 CENTS_PER_DOLLAR입니다 현명하게 100로 정의. 따라서이 선은 무엇을하고 있습니까? 글쎄, 당신이 기억하는 경우, 부동 소수점 값은 매우 정확하지 않습니다. 정수와는 달리, 우리는 나타낼 수 없습니다 부동 소수점 값을 정확하게. 어떤 종류는 항상있다 부정확성. 그래서 우리는 단지 정수와 함께 작업하는 것을 선호 이 문제에 걸쳐. 여기에서, 사용자는 $ 3.42을 입력 한 경우, 우리는 342 센트에 해당 변환하고있어 반올림, 그냥 없애 그 부정확성의. 그래서 한 번 우리의 센트의 번호가 정수, 우리는 계속할 수 있습니다 프로그램의 나머지 부분. 우리는 우리가 정수를 선언하고 있는지 보이지 우리는 사용할 수있어 동전 총을 추적 할 수 동전의 수입니다. 여기에서, 우리는 우리의 첫번째 while 루프가 있습니다. 센트보다 크거나 동안 우리는 참조 위의 해시 분기와 동일 그 사실이지만 우리는 25로 정의 동전의 우리의 수를 증가 할 와 분기 별 감소 센트. 기억하는 구문 센트에 해당합니다 센트 마이너스 분기 같습니다. 사람들은 동일합니다. 따라서이 while 루프는 무엇을하고 있습니까? 여기에서 아이디어는, 그 나는 $ 3.42를 알고있는 경우 빚, 내가주는 계속 분기 I 줄 수 없을 때까지 분기 더 이상. 나는, 분기에게 더 이상 줄 수 없다 나는 $ 3.25를 준 후. 그런 경우 일단 그럼, 우리는거야 이 while 루프의 탈옥. 센트 17 센트에 남아있을 것입니다. 그리고 우리는 다음까지 계속됩니다 우리가 말을하는 동안 루프 곳, 동안 센트 보다 크거나 한푼도 동일하다. 그리고 지금 우리는 똑같은 일을하고 것은 우리는 분기 경우에 한 센트를 제외하고. 그래서 $ 0.17으로, 우리는 루프는 우리가 할 수있을 때까지거야 더 이상 한 푼도, 포기하지 정확히 한 번. 그리고 우리는 7 센트에 남아있을 것입니다. 다음 우리는 센트에 계속 고객님은 우리는 루프를 줄 수없는 것까지 더 이상 센트, 어떤 것 두 센트을 남겨둔다. 그리고, 아래 하단에, 우리는이 동전, 어느 것 루프 것 마지막으로 제로 센트을 남겨둔다. 그런 말에, 우리는 단지 필요 동전의 우리의 번호를 인쇄 할 수 있습니다. 그래서이 프로그램은 완벽하게 정확합니다. 그러나 우리는 실제로 조금 더 잘 할 수 있습니다. 이제 내가 당신에게 10,000 달러 빚을 것을 말한다면, 여기 하나의 갈 필요가 없습니다 분기, 두 분기, 세 분기. 즉시 알아야 나는 당신에게 40,000 분기 빚. 이제 프로그램을 살펴 보자 그 조금 더 잘 처리합니다. 사물의 버전에서는, 우리는 여전히 필요 양을 사용자에게 물어 그들이 정확히 원하는 것을 변경 우리는 이전과 같은 방식으로. 우리는 정확히 반올림해야 방법은 우리가 이전에했던. 그리고 우리는 여전히 정수 우리의 동전이 이전과 동일 정확하게 선언했다. 그래서 여기에 어디 가지 조금 다른 얻을. 우리는 동전 플러스 같음을하고있는 분기로 나누어 센트 분기는 25입니다. 입니다, 많은을 말하는 것을 같은 분기는 센트에 가서 추가 할 수 있습니다 동전에 그. 센트는 142입니다 경우에, (142)는 분할 (25)에 의해 우리에게 5를 제공합니다. 그 정수 나누기 기억 자동으로 자릅니다. 그래서 우리는 동전을하고 플러스 5에 해당하고 있습니다. 바로이 후, 우리는 말을하는지 센트 동일 센트 모드 분기. 모드 운영자가주는 기억 분할 후 우리 나머지. 그래서 142 모드 분기, 즉 줄 것이다 17 (142) (125)은 마이너스이다. 즉, 나머지 이후의 25로 나눈 142 일. 그래서 지금 센트 (17)와 동일하다. 그리고 우리는 똑같은 작업을 수행 임에 대한 것. 10로 나눈 17 저희를 제공 할 것입니다. 그리고 우리는 동전에 그 추가합니다. 그리고 우리는 센트를 업데이트 7입니다 17 모드 10, 수. 그리고 센트에 대해 동일. 5로 나눈 7은 1입니다. 동전에 그를 추가합니다. 그리고 7 모드 5는 2입니다. 그리고 우리 센트입니다. 그리고, 페니를 위해, 실제가 없습니다 분할 또는 모딩에있는 점, 이후, 우리는 우리가 할 수있는 남은 $ 0.2이있는 경우 다만 즉시 해당 추가 동전의 우리의 번호. 그리고 마지막으로, 우리는 인쇄 할 필요가 우리의 동전의 개수 및 임의로 우리의 프로그램의 마지막에 0을 반환 모든 것을 의미하는 일. 내 이름은 롭입니다. 그리고 이것은 욕심이었다. [음악 연주]