Well, you don't know how many different kinds of coins you'll have, and you don't know how much each type is worth, so you'll need a dynamically-sized array for that. Something like:
Code:
int numCoins;
int* coinAmounts;
Code:
coinAmounts = new int[i];
numCoins = i;
//Proceed with setting the values of each element of coinAmounts.
It's not obvious whether you're just having to run this for one dollar, or whether you have to run it for x dollars. You might need a variable for that too.
Basically you probably just want to take one dollar and think of how you can break it up in real life under American currency. Coins in that case are 1, 5, 10, 25, 50, and 100 cents. Practice that to some extent to get an idea for the algorithm and expand on it.