We help IT Professionals succeed at work.

# Amortization Schedule

on
Medium Priority
360 Views
Write a C program that will print an amortization schedule. Your program should be interactive by requesting from the user: amount to borrow, interest rate, # of months to repay. This data should be plugged into this formula to compute monthly payment: MP=P/((1-(1+I/12)to the -M)/(I/12))

Next you should print out this information followed by a header. Then your program should go into a loop to print the schedule. The limit of the loop will be the # of months to repay. Mounthly interest should be computed with this formula: MON INT=P* (I/12)

When your schedule is finished, print out the total amount of interest paid. Consider what to do if the last payment must be changed plus or minus to make the balance go to zero.
Document each line of code
Comment
Watch Question

## View Solution Only

Commented:
I suggest you sit down and do your homework alone...

Commented:
agreed to pc.

Commented:
Looks like a homework problem to me.  If you can't handle this one, maybe you should change majors.

Commented:
Well, I did it. 37 lines of code. What is your teachers email address so that I can send it in.
Commented:
void main()
{
double MonthlyPayment; // monthly payments
double Principal = (double)100000; // amount borrowed
double M = (double)360; // duration of loan in months
double AnnualInterestRate = (double)8; // annual interest rate
double MonthlyInterestRate;     // Monthly interest rate
double MI; // monthly interest paid
double MonthsInAYear = (double)12; // number of months in a year
double One = (double)1; // the multiplicative identity
double dx, dp; // intermediate calculations
int i; // loop counter

printf( "amount to borrow: "); scanf( "%f", &Principal);
printf( "interest rate: "); scanf( "%f", &AnnualInterestRate);
printf( "total months: "); scanf( "%f", &M);

printf( "Borrowing \$%.2f @ a rate of %.2f%% for %.0f months\n", Principal, AnnualInterestRate, M);

MonthlyInterestRate = AnnualInterestRate / (MonthsInAYear * 100);
dx = One + MonthlyInterestRate;

for( dp = 1, i = 0; i < M; i++) dp = dp * dx;

MonthlyPayment = Principal * MonthlyInterestRate / ( One - (One/dp));
printf( "Means a monthly payment of \$%.2f\n", MonthlyPayment);

for( i=0; i < M; i++) {

printf( "Principal \$%.2f  Interest \$%.2f   Balance \$%.2f\n",
MonthlyPayment - (Principal * MonthlyInterestRate),
Principal * MonthlyInterestRate,
Principal - (MonthlyPayment - (Principal * MonthlyInterestRate)));
Principal = Principal - (MonthlyPayment - (Principal * MonthlyInterestRate));
//                if( Principal <= MonthlyPayment) break;
}
printf( "Principal \$%.2f  Interest \$%.2f   Balance \$0.00\n",
MonthlyPayment - (Principal * MonthlyInterestRate),
Principal * MonthlyInterestRate);

}

Not the solution you were looking for? Getting a personalized solution is easy.

##### Thanks for using Experts Exchange.

• View three pieces of content (articles, solutions, posts, and videos)
• Ask the experts questions (counted toward content limit)
• Customize your dashboard and profile