I got your code to compile and run sensibly, (I didn't check the result, only that it didn't loop), by removing your declarations from inside your loop thus...
... I never declare variables the way you are, always at the top of the routine. C++ allows you to declare anywhere, just because it is legal, doesn't make it good style, and now as you've seen, can cause you all kinds of problems if you're not careful.
void LoanCalc(double a, double b, double c)//function definition
cout << "\n\tPymt #\t\tMon's Int\tBalance\t\tTot Int Pd\n";
cout << "\t==========================================\n";
cout << fixed << showpoint << right << setprecision(2);
double Balance = a;
int count = 0;
MonIntRate = b / 12;
MonInt = a * MonIntRate;
PrinPymt = c - MonInt;
TotIntPd = TotIntPd + MonInt;
Balance = Balance - PrinPymt;
cout << count << "\t" << MonInt << "\t" << Balance << "\t" << TotIntPd << "\n";
if(Balance <= c) cout << "\tLast Pymt\t" << Balance + (Balance * MonIntRate) << "\t"
<< (Balance + (Balance * MonIntRate)) + TotIntPd;
As an aside, why are you declaring yopur main as float with three parameters and actually returning an integer without ever passing any parameters to main() ???