campo-sirio/gfm/demo16.c

66 lines
1.2 KiB
C
Raw Normal View History

#include <stdio.h>
#include "gm.h"
void getdec(char *,DEC *);
void main(void);
void main()
{
int choice, opt, nper=0, diy=365;
DECP pv, intr, intamt;
DEC *p;
printf("Simple interest computation\n");
printf("Variable to solve for --\n");
printf(" 1) Number of days\n 2) Interest rate\n");
printf(" 3) Principal\n 4) Accrued interest\n");
printf("Your choice: ");
scanf("%d", &choice);
if (choice == 1)
opt = GM_N;
if (choice == 2)
opt = GM_I;
if (choice == 3)
opt = GM_PV;
if (choice == 4)
opt = GM_INTR;
if (opt != GM_N) {
printf("Number of days: ");
scanf("%d", &nper);
}
if (opt != GM_I)
getdec("Percentage annual interest rate: ", intr);
if (opt != GM_PV)
getdec("Principal: ", pv);
if (opt != GM_INTR)
getdec("Accrued interest: ", intamt);
dprintf("Number of days in year (360 or 365): ");
dscanf("%d", &diy);
if (diy == 360)
p = simp360(&nper, intr, pv, intamt, opt);
else
p = simp365(&nper, intr, pv, intamt, opt);
if (opt==GM_N)
dprintf("The result is %d\n",nper);
else {
if (p)
dprintf("The result is %v\n",p);
else
dprintf("Simple interest failed\n");
}
}
void getdec(str, x)
char *str;
DEC *x;
{
int i;
do {
printf("%s", str);
i = dscanf("%t", x);
} while (i<1);
}