代码正在编译所有,但它不能正常运行。第一个if语句正常工作,但是当它尝试测试其他功能时它没有做它应该做的事情。它只会添加它显示的值。请提前感谢您的帮助。
#include <iostream>
int main()
{
// b representing Balance, Fee is self-explanitory
int b = 0;
float fee = 0;
std::cout << "Enter the beginning balance of your bank account:" << std::endl;
std::cin >> b;
if (b < 400) {
fee = 25;
}
else {
fee = 10;
}
// if, else if statements for check fees
int c = 0;
std::cout << "Enter the amount of checks written this month" << std::endl;
std::cin >> c;
if (c < 20) {
float cf = 0.10;
cf *= c;
fee += cf;
std::cout << "Your bank fees for this month will be: $"
<< fee << std::endl;
return 0;
} else if (c = 20 && c <= 39) {
float cf = 0.08;
cf *= c;
fee += cf;
std::cout << "Your bank fees for this month will be: $"
<< fee << std::endl;
return 0;
} else if (c = 40 && c <= 59) {
float cf = 0.06;
cf *= c;
fee += cf;
std::cout << "Your bank fees for this month will be: $"
<< fee << std::endl;
return 0;
} else (c >= 60) ;{
float cf = 0.04;
cf *= c;
fee += cf;
std::cout << "Your bank fees for this month will be: $"
<< fee << std::endl;
return 0;
}
}
答案 0 :(得分:6)
您应该使用==
而不是=
来比较值。单个等号只能进行分配。编辑:实际上在仔细查看代码后,用=
替换单>=
来检查更大或等于更有意义。如果是这种情况,您可以删除整体的第一个检查,因为else if
已经确定它是真的。
这里的分号是错误的:}else (c >= 60) ;{
导致代码不符合您的预期。
答案 1 :(得分:5)
=
是作业。它应该从你所有的else
分支中删除:
if (c < 20)
{
//...
}
else if (c < 40)
{
//...
}
else if (c < 60)
{
//...
}
else
{
//...
}
另请注意,;
之后您有一个迷路else (c >= 60)
,而且if
丢失if
,但整个{{1}}在那里是多余的。< / p>
答案 2 :(得分:0)
}else if (c = 20 && c <= 39) {
此语句将c设置为20,然后检查c是否为39或更小。可能你的意思是
}else if (c >= 20 && c <= 39) {
如果您只想检查c是否为20,请使用c == 20
。
答案 3 :(得分:-1)
c = 20
和
c = 40
应为c == 20
和c == 40
。