函数调用不显示cout

时间:2016-03-10 07:19:47

标签: c++ function if-statement overloading

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

任何关于为什么会发生这种情况的输入将不胜感激!是的,我已经逐行完成了代码并将其解释为我的橡皮鸭。

#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;
}

2 个答案:

答案 0 :(得分:1)

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

使用==代替=将分配更改为比较。

答案 1 :(得分:0)

稍微改变你的代码:

if (interest == 0)