我正在尝试在Linux机器上编译和执行C ++中的简单代码。但程序陷入了代码的中间。我找不到原因。
这是代码
#include <iostream>
using namespace std;
int n;
int product =1;
int counter =0;
int p;
int main()
{
//return 1;
cout << "How many numbers?" << endl;
cin >> n ;
cout << "Input the numbers " << endl;
for(int i=0;i<n;i++)
{
cin >> p;
product = product*p;
int p = 1;
}
cout << "Now our number to be factorised is " << product << endl;
cin >> p;
for(int i=1;i=product;i++)
{
if(product%i==0)
counter++;
}
cout << "the number of factors is " << counter << endl;
return 0;
}
代码卡在“现在我们的数字是分解的”产品。它计算产品但不再进一步
答案 0 :(得分:10)
因为无限循环,在第二个for循环中,您拼写错误==
:
for(int i=1;i=product;i++)
^
should be ==
旁注:为了最大程度地减少代码中的此类错误,我建议您在表达式中保留空格,例如:表达式i=product
应写为i = product
,以便其可读性。同样,您应该在;
和,
之后添加空格。
答案 1 :(得分:0)
看起来你觉得这行有一个错字:
for(int i=1;i=product;i++)
^
您正在使用作业(=
)而不是逻辑等号(==
)。所以这实际上是一个无限循环,因为这个表达式的结果是true
。