C - Оплата Calc.не заканчивается в $ 0 - PullRequest
0 голосов
/ 29 января 2012

Я пытаюсь создать калькулятор платежей, однако я сталкиваюсь с ошибкой, при которой остаток средств является отрицательным, а не 0 долларов США. Вот код:

int main()
{
double selling, down, intRate, intBal, toBal, payment, loan, loanN, d;
int counter, i;

printf("Cost of item: ");
scanf("%lf", &selling);

printf("Down payment on item: ");
scanf("%lf", &down);

printf("Interest rate: ");
scanf("%lf", &intRate);

printf("Monthly payment: ");
scanf("%lf", &payment);

d= selling * 100.0;
i = d + 0.5;
selling = i / 100.0;

 d= down * 100.0;
i = d + 0.5;
down = i / 100.0;

 d= payment * 100.0;
i = d + 0.5;
payment = i / 100.0;

 counter = 1;

 loan = selling - down;

printf("--------------------------------------------------------------\n");
printf("Selling Price        = %8.2lf\n", selling);
printf("Down Payment         = %8.2lf\n", down);
 printf("Amount of Loan       = %8.2lf\n", loan);
 printf("Annual Interest Rate = %8.2lf\n", intRate);
printf("Monthly Payment      = %8.2lf\n", payment);
 printf("--------------------------------------------------------------\n");
 printf("Pay #  Old Balance  Payment  Interest  To Balance  New Balance\n");
 printf("-----  -----------  -------  --------  ----------  -----------\n");

 while (loan > 0)
 {
 if (loan < payment)
 {
    payment = loan + intBal;
 }
 printf("%5i  %11.2lf  %7.2lf  ", counter, loan, payment);
 intBal = intRate * loan / 12;
 printf("%8.2lf  ", intBal);
 toBal = payment - intBal;
 printf("%10.2lf  ", toBal);
 loanN = loan - toBal;
 loan = loanN;
 printf("%11.2lf\n", loanN);
 counter++;
 }
return 0;

1 Ответ

0 голосов
/ 29 января 2012

Вы взимаете их дважды за проценты в конце срока кредита.Переместить эту

if (loan < payment)
{
    payment = loan + intBal;
}

после этой строки

intBal = intRate * loan / 12;
...