函数调用不显示 cout

Function call doesn't display cout

本文关键字:cout 显示 函数调用      更新时间:2023-10-16

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

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

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

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

使用 == 而不是 = 将分配更改为比较。

稍微更改一下代码:

if (interest == 0)