2014-03-31 71 views
-2

我正在写一个简单的程序,通过Linux重定向找到整数列表的因子。我差不多完成了,但我被困在一个部分。这是到目前为止,我的程序:C++因子程序:输出因子数

#include<iostream> 
using namespace std; 
int main() 

{ 
int counter = 0; 
int factor; 
cin >> factor; 

while (cin) 
{ 
if (factor < 0) 
break; 
cout << "The factors of " << factor << " are " << endl; 
for(int i=factor; i>=1; i--) 
if (factor % i == 0) 
    { 
    counter++; 
    cout << i << endl; 
    } 
cout << "There are " << " factors." << endl; 
cout << endl; 
cin >> factor; 
} 
return 0; 
} 

现在我的问题是,在该行 “COUT < < ”有“ < <” 因素 “< < ENDL;”。我不知道如何计算该程序输出的因子数量。

例如:

7的因素是

有2个因素。

在这个例子中,我将如何计算和输出“2”。

非常感谢帮助。

+1

我认为你是从其他人那里复制一个简单的程序,因为你不可能自己写上面的代码*不知道你已经存储了你想要的信息。 –

+0

另外WTH是“Linux重定向”? –

+0

嗯,我的讲义中有类似于这个程序的例子,但是我很难解决这个问题。我不确定你为什么如此快地指责我抄袭他人的代码。 – user3409117

回答

0

而不是

cout << "There are " << " factors." << endl; 

使用

cout << "There are " << counter << " factors." << endl; 

如果你这样做,你必须移动你定义counter行。

而不是它作为main中的第一行,它需要被移动到while循环中的第一行。

+0

我已经试过,但它不起作用。 – user3409117

+0

没关系。我忘了将它移到第一行。它解决了。感谢您的帮助! – user3409117