ba237a9d91
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunti i sorgenti per Greenleaf Math Library (gfm.dll) git-svn-id: svn://10.65.10.50/trunk@10079 c028cbd2-c16b-5b4b-a496-9718f37d4682
54 lines
1.1 KiB
C
Executable File
54 lines
1.1 KiB
C
Executable File
#include <stdio.h>
|
|
#include "gm.h"
|
|
void getdec(char *,DEC *);
|
|
void main(void);
|
|
static DEC *payintr[500], *payprin[500], *balance[500];
|
|
|
|
void main()
|
|
{
|
|
int nper, nyear, begend, i;
|
|
DECP pv, pmt, intr, aintr;
|
|
extern DEC *payintr[500], *payprin[500], *balance[500];
|
|
|
|
printf("Amortization schedule\n");
|
|
|
|
getdec("Amount of loan (positive): ", pv);
|
|
getdec("Percentage annual interest rate: ", aintr);
|
|
printf("Length of loan (years): ");
|
|
dscanf("%d", &nyear);
|
|
getdec("Monthly payment (positive): ", pmt);
|
|
|
|
nper = nyear * 12;
|
|
DivideDecimalByInt(intr, aintr, 12);
|
|
begend = GM_END;
|
|
|
|
AllocateDecimalArray(payintr, nper+1);
|
|
AllocateDecimalArray(payprin, nper+1);
|
|
AllocateDecimalArray(balance, nper+1);
|
|
|
|
AmortizeTable(payintr, payprin, balance, intr,
|
|
pv, pmt, begend, nper);
|
|
|
|
printf("%15s%20s%20s%20s\n", "Payment #", "Interest",
|
|
"Principal", "Balance");
|
|
for (i=1; i<=nper; i++)
|
|
dprintf("%15d%20v%20v%20v\n", i, payintr[i],
|
|
payprin[i], balance[i]);
|
|
|
|
FreeDecimalArray(payintr);
|
|
FreeDecimalArray(payprin);
|
|
FreeDecimalArray(balance);
|
|
}
|
|
|
|
void getdec(str, x)
|
|
char *str;
|
|
DEC *x;
|
|
{
|
|
int i;
|
|
|
|
do {
|
|
printf("%s", str);
|
|
i = dscanf("%t", x);
|
|
} while (i<1);
|
|
}
|