And, if I could offer some 'style' suggestions:
a) names like 'change1()' and 'change2()' don't tell the reader anything about what they DO. In my humble opinion, function/method names should describe what they DO, and variables should describe what they ARE.
b) There is a wonderful opportunity here to make a COMMON routine that takes as an argument the total amount and the denomination of the coin you want it to process. Something like:
int HowManyCoins( float dollarAmount, int coinValueInCents )
{
return (int)(dollarAmount * 100.0) / coinValueInCents;
}
Or, maybe:
void HowManyCoins( float dollarAmount, int coinValueInCents, int& coinsReturned, float& remainingMoney )
{
coinsReturned = (int)(dollarAmount * 100) / coinValueInCents;
remainingMoney = dollarAmount - (double)(coinsReturned * coinValueInCents);
}