C ++如果其他语句无法正常运行

时间:2014-02-27 09:36:22

标签: c++

代码正在编译所有,但它不能正常运行。第一个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;
        }
}

4 个答案:

答案 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 == 20c == 40