1

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

代码卡在“现在我们要分解的数字是”产品。它计算产品,但没有进一步进展

4

2 回答 2

10

因为无限循环,在第二个 for 循环中你拼错了==

for(int i=1;i=product;i++)
             ^
               should be ==

旁注:为了尽量减少代码中的此类错误,我建议您在表达式中保留空间,例如表达式i=product 应写为i = product,以便其可读。;同样,您应该在和之后添加空格,

于 2013-07-29T15:17:11.087 回答
0

看起来你在这一行有错字:

for(int i=1;i=product;i++)
             ^

您正在使用 assignment( =) 而不是逻辑 equals( ==)。所以这实际上是一个无限循环,因为这个表达式的结果是true.

于 2013-07-29T15:18:46.740 回答