C ++编译中的简单代码,但不在Linux中执行

时间:2013-07-29 15:15:41

标签: c++ linux

我正在尝试在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;
}

代码卡在“现在我们的数字是分解的”产品。它计算产品但不再进一步

2 个答案:

答案 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