45 lines
793 B
C
45 lines
793 B
C
|
#include <stdio.h>
|
||
|
#include "gm.h"
|
||
|
void getdec(char *,DEC *);
|
||
|
void main(void);
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
int nper, nyear, opt, begend;
|
||
|
DECP pv, pmt, fv, intr, aintr;
|
||
|
DEC *p;
|
||
|
|
||
|
printf("Monthly payment computation\n");
|
||
|
|
||
|
getdec("Purchase price: ", pv);
|
||
|
getdec("Percentage annual interest rate: ", aintr);
|
||
|
printf("Length of loan (years): ");
|
||
|
dscanf("%d", &nyear);
|
||
|
|
||
|
nper = nyear * 12;
|
||
|
ZeroDecimal(fv);
|
||
|
DivideDecimalByInt(intr, aintr, 12);
|
||
|
opt = GM_PMT;
|
||
|
begend = GM_END;
|
||
|
|
||
|
p = CompoundInterest(&nper, intr, pv, pmt, fv, begend, opt);
|
||
|
if (p) {
|
||
|
AbsoluteDecimal(pmt, pmt);
|
||
|
dprintf("The monthly payment is %v\n", pmt);
|
||
|
}
|
||
|
else
|
||
|
dprintf("CompoundInterest failed\n");
|
||
|
}
|
||
|
|
||
|
void getdec(str, x)
|
||
|
char *str;
|
||
|
DEC *x;
|
||
|
{
|
||
|
int i;
|
||
|
|
||
|
do {
|
||
|
printf("%s", str);
|
||
|
i = dscanf("%t", x);
|
||
|
} while (i<1);
|
||
|
}
|