我需要制作一个程序,计算一个数字可以被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;
}
我得到的错误就像那里提到的关于没有提到的左值的错误。任何帮助将不胜感激。非常感谢你!
答案 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
不需要任何检查条件。