函数调用不显示 cout

Function call doesn't display cout

您好,我编写了一个程序来计算银行账户的期末余额。我创建了一个重载函数来将存款添加到起始余额中,一个是利息金额,另一个是没有任何利息。目前,函数调用不显示任何值。

任何关于为什么会发生这种情况的意见将不胜感激!是的,我已经逐行检查了代码并向我的橡皮鸭解释了它。

#include <iostream>

using namespace std;

const int SIZE = 25;
const int sentinel = -999;


int main(){
    void balanceAccount(double, int, double[]);
    void balanceAccount(double, int, double[], double);
    double balance = 0.0, interest = 0.0, num = 0.0, total = 0.0;
    double deposit[SIZE] = {};
    int count = 0;

    cout << "Enter starting balance: $";
    cin >> balance;

    while (num != sentinel && count < SIZE)
    {
        cout << "Enter up to 25 deposits, or -999 to quit: " << endl;
        cin >> num;
        if (num != sentinel){
            deposit[count] = num;
            count++;
        }
        cout << "There are " << count << " deposits this week." << endl;
    }
    cout << "Test deposits: ";
    for (int i = 0; i < count; i++){
        cout << deposit[i] << " ";
    }

    cout << "Enter interest amount: ";
    cin >> interest;
    if (interest == 0.0){
        balanceAccount(balance, count, deposit);
    }
    else if (interest > 0.0){
        balanceAccount(balance, count, deposit, interest);
    }

    system("pause");
    return 0;
}

void balanceAccount(double bal, int ct, double dep[]){
    double sum = 0.0;
    for (int i = 0; i < ct; i++){
        sum += dep[i];
    }
    sum = sum + bal;

    cout << "Ending balance: $" << sum << endl;
}
void balanceAccount(double bal, int ct, double dep[], double rate){
    double interestAmount = 0.0, sum = 0.0;
    for (int i = 0; i < ct; i++){
        sum += dep[i];
    }
    sum = sum + bal;
    interestAmount = sum * rate;
    sum = sum + interestAmount;

    cout << "Ending balance: $" << sum << endl;
}

稍微更改一下代码:

if (interest == 0)

您在第一个 if 中的条件不会将 interest 与值 0 进行比较,而是将 0 分配给 interest 变量。这种情况的结果是 0,它被解释为 false。
接下来 if (else-if) 检查 interest 是否为正,但由于您在之前的条件中将其更改为 0,它再次为假。

将赋值更改为使用 == 而不是 = 的比较。