# Posted By

bhart on 10/27/13

# Statistics

Viewed 429 times
Favorited by 0 user(s)

# Advanced Greedy Algorithm for Change Machine

/ Published in: C  see the change

Copy this code and paste it in your HTML
`#include <cs50.h> #include <stdio.h> #include <math.h>  int main(void) {     // ichangeD is equal to the change in dollars     float ichangeD;      //ichangeC is equal to the change in cents     int ichangeC;      do    {         // ask for user the change and covert it to cents         printf("What is the amount of spare change owed (in dollars)?\n");         ichangeD = GetFloat();         ichangeC = round(ichangeD * 100);      }     while(ichangeD < 0);      printf("So %.2f dollars or %.0d cents are needed!\n", ichangeD, ichangeC);      // declare variables of different possible monetary values    int DaCount = 0;     int DaDCount = 0;     int ldollars = 0;     int gdollars = 0;     int hdollars = 0;     int jdollars = 0;     int quarters = 0;     int dimes = 0;     int nickles = 0;     int pennies = 0;      while(ichangeC % 2000 != ichangeC)     {         jdollars++;         DaDCount++;         ichangeC = ichangeC - 2000;     }      printf("%d twenty dollar bills needed\n", jdollars);            // since remainder of something less that a certain number is that number that you     // trying to divide, use a while loop to do this until something happens    // then move on to the next monetary value while keeping track of count of money    while(ichangeC % 1000 != ichangeC)     {         hdollars++;         DaDCount++;         ichangeC = ichangeC - 1000;     }      printf("%d ten dollar bills needed\n", hdollars);        while(ichangeC % 500 != ichangeC)     {         ldollars++;         DaDCount++;         ichangeC = ichangeC - 500;     }      printf("%d five dollar bills needed\n", ldollars);        while(ichangeC % 100 != ichangeC)     {         gdollars++;         DaDCount++;         ichangeC = ichangeC - 100;      }      printf("%d one dollar bills needed\n", gdollars);      printf("%d bills in total needed\n", DaDCount);      while(ichangeC % 25 != ichangeC)     {         quarters ++;         DaCount++;         ichangeC = ichangeC - 25;     }      printf("%d quarters needed\n", quarters);      while(ichangeC % 10 != ichangeC)     {         dimes++;         DaCount++;         ichangeC = ichangeC - 10;     }      printf("%d dimes needed\n", dimes);      while(ichangeC % 5 != ichangeC)     {         nickles++;         DaCount++;         ichangeC = ichangeC - 5;     }      printf("%d nickles needed\n", nickles);      while(ichangeC % 1 != ichangeC)     {         pennies++;         DaCount++;         ichangeC = ichangeC - 1;     }      printf("%d pennies needed\n", pennies);      printf("%d coins in total are needed!\n", DaCount);  }` Subscribe to comments