У меня возникли проблемы с пониманием того, почему моя функция не будет работать. Я несколько раз смотрел на цикл while, но я не понимаю, почему программа не выполняется правильно. Как остановить цикл while бесконечно?C++: Функции здания
Я пытаюсь создать программу, которая сообщает пользователю, сколько времени потребуется для погашения кредита и что нужно вернуть в последний месяц. Пользователь вводит в заимствованный кредит, проценты и деньги, которые он/она намеревается заплатить каждый месяц.
Например, я заимствовал 100 долларов США при годовом проценте 12%. В первый месяц я должен заплатить $ 100 * 0.01 = $ 1. Скажем, я плачу 50 долларов в месяц, тогда мой новый баланс составляет 100 + 1 - 50 = $ 51. Теперь я должен заплатить 1% от этого, что составляет $ 0,51. Мой новый баланс составляет 51 + 0,51 - 50 = $ 1,51, и я продолжаю идти, пока все не окупится.
Это то, что мой код выглядит следующим образом:
#include <iostream>
using namespace std;
void get_input(double &principal, double &interest, double &payment);
int main()
{
double money, i, pay;
cout << "How much do you want to borrow ?";
cin >> money;
cout << "What is the annual interest rate expressed as a percent?";
cin >> i;
cout << "What is the monthly payment amount?";
cin >> pay;
i = i/100;
get_input(money, i, pay);
}
void get_input(double &principal, double &interest, double &payment)
{
double totalpayment, add = 0;
int months = 1;
while(principal>0)
{
add = principal*interest;
principal = principal + add - payment;
months++;
}
totalpayment = payment+principal;
cout << "The last month for your debt to be paid off is: " << months << endl;
cout << "Your final payment is: " << totalpayment << endl;
}
Каковы точные входы, введенные в эту программу? – user2357112
Я ввел 1000 за кредит, 18 за проценты и 50 оплатил ежемесячно – LorrJ
Точный как в том, что вы буквально набрали. Я сомневаюсь, что вы указали долларовые или процентные знаки. – user2357112