Change maker penny shy
Oct 24, 2013 at 10:28pm UTC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
//THE CHALLENGE
// ME
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double owed;
double paid;
double change;
double pennies;
double nickels;
double dimes;
double quarters;
double fifties;
double dollars;
double twodollars;
double newval;
double newval2;
double newval3;
double newval4;
double newval5;
double newval6;
double newval7;
cout << "Enter amount owed:" ;
cin >> owed;
cout << "Enter amount paid:" ;
cin >> paid;
change = paid - owed ;
newval = fmod (change , 2);
twodollars = (change - newval) / 2;
change = change - twodollars * 2;
newval2 = fmod (change , 1);
dollars = (change - newval2);
change = change - dollars;
newval3 = fmod (change , .50);
fifties = (change - newval3) / .50;
change = change - fifties * .50;
newval4 = fmod (change , .25);
quarters = (change - newval4) / .25;
change = change - quarters * .25;
newval5 = fmod (change , .10);
dimes = (change - newval5) / .10;
change = change - dimes * .10;
newval6 = fmod (change , .05);
nickels = (change - newval6) / .05;
change = change - nickels * .05;
newval7 = fmod (change , .01);
pennies = (change - newval7) / .01;
change = change - pennies * .01;
cout << "TWOS " <<twodollars << endl;
cout << "ONES " <<dollars << endl;
cout << "50 CENTS " <<fifties << endl;
cout << "QUARTERS " <<quarters << endl;
cout << "DIMES " <<dimes << endl;
cout << "NICKELS" << nickels << endl;
cout << "PENNIES" <<pennies << endl;
system("PAUSE" )
return 0;
}
Essentially every time i run it it comes out one penny short, i was thinking about adding +.01 to the initial setting of change, which worked, but it feels like cheating, does anyone know why it does that or how to fix it? (also this isnt homework, we had a similar one in class and teacher challenged me to do this, havent even learned fmod or half the stuff in here yet haha)
also i know i could set newval to 0 after each run and eliminate the other 6, that was for getting rid of an earlier program, ill add that and an if/else statement for if they pay less than they owe later
Oct 24, 2013 at 10:35pm UTC
just tried multiplying them all by 100 as well, still has error
Topic archived. No new replies allowed.