Nevermind, i've solved it. In the GetChange function i was scanning in a 'decimal' when it's meant to be a 'float', "%f%*c". Haha, oh dear.
My program is producing '0's' for the amount of each denomination of dollars/coins. 100 dollars, 50 dollars, 20 dollars, 10 dollars, 5 dollars, 2...
Separate names with a comma.