Мой код компилируется красиво, но математические формулы, которые я использую, не дают правильного результата. Мне нужно рассчитать баланс, аннулировать и проценты на все 3 месяца. Я также обязан проверять ввод пользователя. Для этих целей я использую вложенные циклы. Пожалуйста, дайте мне знать, если вы заметите мою ошибку. Спасибо, милые люди!Код WORKS MAT NOT
cout << "Please enter the starting balance: ";
cin >> startBalance;
cout << "Please enter the annual interest rate: ";
cin >> annualInterest;
for (int month = 1; month <= 3; month++) {
do {
cout << setprecision(5);
cout << "Please enter the total amount deposited on month " << month << ": ";
cin >> balance;
if (balance <0) {
goodChoice = false;
cout << "\n\t***ERROR " << balance << " ***";
cout << "*** Choice must be positive***\n" << endl;
}
else {
goodChoice = true;
}
startBalance += balance; //need to calculate the balance for all 3 months
} while (!goodChoice);
do {
cout << setprecision(5);
cout << "Please enter the total amount withdrawn on " << month << ": ";
cin >> withdrawn;
if ((withdrawn <0) || (withdrawn > startBalance)) {
goodChoice = false;
cout << "***ERROR " << withdrawn << " ***";
cout << "*** Choice must be positive or greater than the balance***" << endl;
}
else {
goodChoice = true;
}
finalWithdrawn += withdrawn; // the total amount of withdrawn
finalBalance = startBalance - withdrawn;
monthInterest = ((startBalance + finalBalance)/2) * (annualInterest/12);
totalInterest += monthInterest; //total interest for all 3 months
endBalance = monthInterest + finalBalance;
} while (!goodChoice);
}
cout << "Total Deposit: " << endBalance << endl;
cout << "Total Withdrawn: " << finalWithdrawn << endl;
cout << "Total Interest: " << totalInterest << endl;
cout << "Final Balance: " << endBalance << endl;
Просьба указать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и желаемое поведение. Каков ваш вклад? Каков ваш желаемый результат? – MikeCAT
Две вещи: 1. Нам нужно знать объявление ваших переменных; 2. Внизу вы сравниваете «отозванные» и «startBalance» (оба из которых, я полагаю, являются float). Таким образом вы не можете сравнивать поплавки. Подробнее см. Http://stackoverflow.com/questions/17333/most-effective-way-for-float-and-double-comparison. –
1) Я установил все мои переменные в double, bool goodChoice = false. 2) Я говорю, что результат неправильный bc после того, как я подключил цифры. Я получил отрицательные результаты. – sunnysmile24