2017-07-01 20 views
-3

我正在學習C++,這是我必須做的任務,它是完整的,但我的興趣不會正確回來,但銀行餘額是正確的,所以我只是沒有正確顯示interestEarned。 「我的老師說,」總收益:$ 65.50「是不正確的,應該顯示」$ 120.50「。我究竟做錯了什麼?C++:interestEarned回來錯了

console image

這裏是我的代碼:

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

int main() { 

// Variables 
int numOfCustomers, numOfMonths = 0; 
double bankBalance, depositAmount, withdrawnAmount, interestRate, interestEarned = 0.0; 
const int MIN = 0; 

// Asking for Number of Customers 
cout << "Enter the number of customers: "; 
cin >> numOfCustomers; 

// Making sure the input was not 0 or lower 
while (numOfCustomers <= MIN) { 
    cout << "==>Number of customers must be at least 1. Try again: "; 
    cin >> numOfCustomers; 
} 

// Validating each Customer 
for (int c = 1; c < (numOfCustomers + 1); c++) { 

    // Start of each Customer 
    cout << "\nCUSTOMER " << c << ":\n"; 

    // Asking for Number of Months -- 
    cout << "Enter the number of months the account has been opened: "; 
    cin >> numOfMonths; 

    // Making sure the input was not 0 or lower 
    while (numOfMonths <= MIN) { 
     cout << "==>Number of months must be at least 1. Try again: "; 
     cin >> numOfMonths; 
    } 

    // Asking for Starting Balance -- 
    cout << "Enter the starting balance: $"; 
    cin >> bankBalance; 

    // Making sure the input was not 0 or lower 
    while (bankBalance < MIN) { 
     cout << "==>Starting balance can't be negative. Try again: $"; 
     cin >> bankBalance; 
    } 

    // Asking for Monthly Interest Rate -- 
    cout << "Enter the monthly interest rate as a decimal (i.e. 0.05 = 5%): "; 
    cin >> interestRate; 

    // Making sure the input was not 0 or lower 
    while (interestRate < MIN) { 
     cout << "==>Monthly interest rate can't be a nagative. Try again: "; 
     cin >> interestRate; 
    } 

    // Validating each Month 
    for (int m = 1; m < (numOfMonths + 1); m++) { 

     // Deposit Amount 
     cout << "\nEnter deposit amount for Month " << m << ": $"; 
     cin >> depositAmount; 
     bankBalance = bankBalance + depositAmount; 

     // Withdrawn Amount 
     cout << "Enter withdrawn amount for Month " << m << ": $"; 
     cin >> withdrawnAmount; 
     bankBalance = bankBalance - withdrawnAmount; 

     // Calculating Interest Earned 
     interestEarned = bankBalance * interestRate; 

     // Complete bankBalance 
     bankBalance = bankBalance + interestEarned; 
    } 

    // Account Summary 
    cout << "\nACCOUNT SUMMARY" << endl; 
    cout << fixed << setprecision(2); 
    cout << "Number Months Active: " << numOfMonths << endl; 
    cout << "Ending Balance: $" << bankBalance << endl; 
    cout << "Total Interest Earned: $" << interestEarned << endl; 
} 

system("pause"); 
return 0; 
} 
+1

您打印上個月掙的利息 - 無論是在循環的最後一次迭代時計算出來的。我想你應該打印所有月份賺得的利息總額。 –

+0

@IslamHassan bankBalance * interestRate – BroSimple

+1

您的代碼每月計算'interestEarned'。如果你想在幾個月的總利息,你需要加起來個人每月的金額。 – Peter

回答

0

使用是在循環之前初始化爲零另一個變量。在循環中,將interestEarned的值添加到它。 - @Peter