Для калькулятора среднего интереса C++

На ваш 21-й день рождения ваша бабушка открывает сберегательный счет для вас и вносит в счет 1000 долларов США. Сберегательный счет выплачивает 3% -ную долю на балансе счета. Если вы не вложите больше денег на счет, и вы не заберете деньги со счета, сколько будет стоить ваш сберегательный счет в конце от 1 до 5 лет?

Создайте программу, которая даст вам ответы. Вы можете рассчитать ответы, используя следующую формулу: b = p * (1 + r) n. В формуле p является основной (сумма депозита), r - годовая процентная ставка (3%), n - количество лет (от 1 до 5), а b - остаток на сберегательном счете на конец n-го года. Используйте цикл for.

Любая помощь будет оценена

Это то, что у меня есть до сих пор, и все, что я получаю, это бесконечный цикл

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

void main()
{
// Inputs //

****** princ = 0.0;
****** rate = 0.0;
int years = 0;
int year = 1;
****** total = 0.0;

// Ask User For INFO //

cout << "What is the principle? ";
cin >> princ;
cout << "What is the rate in decimal? ";
cin >> rate;
cout << "how many years? ";
cin >> years;



for (****** total; total = princ*(1+rate)*year;)
{
cout << "The balance after year " << year << " is "<< total << endl << endl;
year += 1;
}

while((years + 1)!= year);

system("pause");
}
</iomanip></cmath></iostream>
2 ответа

Вы неправильно поняли, как работает цикл for. Он используется для того, чтобы что-то делать определенное количество раз, в вашем примере было бы целесообразно зацикливаться на определенное количество лет. Что-то вроде этого:

****** interest = 1.0 * rate:
****** accumulated = 1.0 * interest;

for (auto i=1; i < years; ++i) {
 accumulated *= interest;
 cout << "The balance after year " << i << " is " << (princ * accumulated) << std::endl;
}


Ваша проблема заключается в том, что вы каким - то образом замешан ваш for и во while цикла.

Вместо

for (****** total; total = princ*(1+rate)*year;)
{
cout << "The balance after year " << year << " is "<< total << endl << endl;
year += 1;
}

while((years + 1)!= year);

Вероятно, вы захотите что-то вроде этого:

for (****** total; (years +1) != year; total = princ*(1+rate)*year)
{
cout << "The balance after year " << year << " is "<< total << endl << endl;
year += 1;
}

Также ваша main функция не должна возвращать void как уже отмечалось в комментариях, и вместо этого должна быть int main()

licensed under cc by-sa 3.0 with attribution.