Assume you are given a variable, payRate of type Money (a structured type with two int fields, dollars and cents).

LANGUAGE: C++

CHALLENGE:

Assume you are given a variable, payRate of type Money (a structured type with two int fields, dollars and cents).
Write the necessary code to increase the effective value of payRate by $1.50. To do this you need to add 50 to cents and 1 to dollars but you ALSO must make sure that cents does not end up over 99: if it does, you need to “carry a one” to dollars.

For example, if payRate were $12.80 then a naive addition of $1.50 yields 13 (dollars) and 130 (cents). This would have to be changed to 14 (dollars) and 30 (cents).

SOLUTION:

Money payRateIncrease;
payRateIncrease.dollars=1;
payRateIncrease.cents=50;

payRate.dollars += payRateIncrease.dollars + (payRate.cents + payRateIncrease.cents)/100;
payRate.cents = (payRate.cents + payRateIncrease.cents) % 100;