编译错误“程序需要左值”

时间:2014-01-29 03:58:25

标签: math division lvalue prime-factoring

我需要制作一个程序,计算一个数字可以被2或3整除的次数,如果它可以被2或3计算,我的代码就是:

#include <iostream>
#include <cmath>

using namespace std;
int main()
{
    int input, two, three;
    int counter;
    counter = 0;
    three = 0;
    cout << "Please enter your natural number." << endl;
    cin >> input;
    if (input%2 == 0 && input%3 == 0)
    {
        cout << "Your number is divisible by 2 and 3" << endl;
    }
    else if (input % 2 == 0 && input % 3 != 0)
    {
        cout << "Your number is divisible by 2" << endl;
    }
    else //(input %2 != 0 && input %3 == 0)
    {
        cout << "Your number is divisible by 3" << endl;
    }
    while (input % 2 == 0)
    {
        counter++;

    }
    while (input % 3 == 0)
    {
        three++;

    }
    cout << "Amount of times divisible by 2: " << counter << endl;
    cout << "Amount of times divisible by 3: " << three << endl;
    return 0;
}

我得到的错误就像那里提到的关于没有提到的左值的错误。任何帮助将不胜感激。非常感谢你!

1 个答案:

答案 0 :(得分:1)

您未正确使用if条件。

  • 使用==检查相等性,因为=用于值分配。

  • 使用&&检查and而不是;

您需要更改

if (input%2 = 0; input%3 = 0)

if (input%2 == 0 && input%3 == 0)

并相应地改变其他人。


已更新:了解您的更新代码,您还需要更改

else (input %2 != 0 && input %3 == 0)

else // (input %2 != 0 && input %3 == 0)

因为else不需要任何检查条件。