函数调用不显示 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
,它再次为假。
将赋值更改为使用 ==
而不是 =
的比较。
您好,我编写了一个程序来计算银行账户的期末余额。我创建了一个重载函数来将存款添加到起始余额中,一个是利息金额,另一个是没有任何利息。目前,函数调用不显示任何值。
任何关于为什么会发生这种情况的意见将不胜感激!是的,我已经逐行检查了代码并向我的橡皮鸭解释了它。
#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
,它再次为假。
将赋值更改为使用 ==
而不是 =
的比较。