There isn't a single thing wrong with it. The function just isn't implementing the subtraction algorithm correctly.
Try to think more carefully about what it is you're trying to do. It looks like you're close to the right idea, but you're not putting the pieces together properly, if that makes sense.
oh... I get it. I was sorely confused earlier. While you can do it that way, its a pain. I would use the direct approach:
void mm(int a, int b)
{
int cents1 = a*100+b;
int cents2 = money1*100+money2;
int dollarresult = (cents2 - cents1)/100;
int cresult = (cents2-cents1)%100;
//do something here with the 2 results.
}
and you still don't really want to use a lot of globals and gotos :)
your code does not understand the 2 numbers belong together. 150 -60 is 90. But your code has 100 - 0 and 50-60, and can't "borrow" from the 100 to get the correct answer because the 2 numbers have nothing to tie them together. You have to make this connection somehow.
what I did was convert them back to a common value, let the computer do the math, and pull them back apart. This seems easier to me than trying to handle the split number approach.