你好我写了一个程序来计算银行账户的期末余额。我创建了一个重载函数来将存款添加到起始余额中,一个用于利息金额,一个用于没有任何兴趣。目前,函数调用不显示任何值。
任何关于为什么会发生这种情况的输入将不胜感激!是的,我已经逐行完成了代码并将其解释为我的橡皮鸭。
#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;
}
答案 0 :(得分:1)
如果您的状况不是interest
与价值0
进行比较,而是将0
分配给interest
变量。这种情况的结果是0
,这被解释为假
接下来如果(else-if)检查interest
是否为正,但由于您在之前的条件中将其更改为0
,则它再次为假。
使用==
代替=
将分配更改为比较。
答案 1 :(得分:0)
稍微改变你的代码:
if (interest == 0)