#c
#c
Вопрос:
Я пытаюсь написать этот код для школы, и я абсолютно застрял на том, что я делаю неправильно, если бы кто-нибудь мог просто указать мне правильное направление, это было бы полезно. Пытаюсь узнать как можно больше. Моя программа не вычисляет, сколько причитается в конце каждого месяца, после вычитания платежа, а затем добавления процентов. ОН просто отображает одно и то же значение.
#include<stdio.h>
int main()
{
float loan;
float interest;
int n;
float outstanding;
float outstanding2;
float princeable;
float payment;
printf("nEnter the amount of the loan: n ");
scanf("%f" , amp;loan);
printf("nEnter monthly interest percentagen ");
scanf("%f" , amp;interest);
printf("nEnter monthly payments: n ");
scanf("%f" , amp;payment);
printf("nEnter number of monthly Payments: n ");
scanf("%i" , amp;n);
while (n >= 0) {
outstanding = (loan - payment);
outstanding = (outstanding * (1 (interest/100)));
printf("Outstanding Balance after %i =%.2fnn", n, outstanding);
n--;
}
return 0;
}
Комментарии:
1. В чем вопрос? (То есть, в чем проблема, с которой вы столкнулись?)
2. В чем проблема? Ошибка компиляции? Ошибка при ее запуске? Вычисляется неправильно?
3. Я предполагаю, что «непогашенный остаток» никогда не меняется. Это одно и то же для каждой итерации.
4. @BenvanGompel — Если только это не ипотека в США 6-летней давности — в этом случае «непогашенный остаток» увеличивается с каждой итерацией.
5. Вопрос присутствует, но вначале это скорее утверждение. @BenvanGompel правильно.
Ответ №1:
На каждой итерации вы должны рассчитывать outstanding
на основе его предыдущего значения, а не на основе первоначальной стоимости кредита, поскольку вы также платите проценты за проценты.
outstanding = loan;
while (n > 0) {
outstanding = (outstanding - payment);
outstanding = (outstanding * (1 (interest/100)));
printf("Outstanding Balance after %i =%.2fnn", n, outstanding);
n--;
}
Ответ №2:
Эта линия:
outstanding = (loan - payment);
внутри цикла неверно, так как каждый раз оно начинается с начального loan
значения. Это должно быть:
outstanding = (outstanding - payment);
Вам также нужно будет установить outstanding
значение loan
перед входом в цикл.
Кроме того, у вас слишком много итераций цикла и недопустимая escape-последовательность O
в вашей printf
строке.