line 76: y = static_cast<int> (1 + rand() * (max / x));
If all you want to do is to generate a random number for the user to guess then why all that math? I'd change the function to just one line --return rand();
line 33: variable guessed is used before it has been initialized.
line 111: why is **guesses ** a parameter? It is never used in that function. If you want line 117 to change the value that is declared in main() then you need to pass the variable by reference, not by value.
int CalcNewMoney (int money, int bet, int* guesses)
You should not have two different variables with the same variable name -- it causes lots of confusion and bugs. I'd change the loop count to be standard i counter instead of guesses.
line 128: You will most likely get division by 0 errors because the value of guesses is 0 the first time through the loop.
Also the function can return without a return value (what happens after the loop finishes???)