2015-11-12 58 views
-4

我想在动态数组中分配除数并将其导出到函数供以后使用。我该怎么做?从循环中动态分配数组

int n,i; 
cout << "enter your number for check: "; 
cin >> n; 
for(i = 2; i <= n; i++) 
{ 
    if(n%i == 0) 
    { 
     cout << i << endl; //divisor result 
    } 
} 
+0

你能更清楚地解释一下你的意思吗?你想从数组中获取'i'的值吗? “输出到函数”是什么意思? – EkcenierK

+0

你问的是如何存储'i'值以便将它们除以供以后使用,而不是直接在发现时输出它们?你尝试了什么?你见过['std :: vector '](http://en.cppreference.com/w/cpp/container/vector)吗? – Andrew

+0

这些i值是除数。我想将这些值存储在动态数组中。 –

回答

1

STL的标准动态数组容器是std::vector

下面是你的代码,每个追加发现除数的int一个vectordivisors,略加修改版本,然后将它们输出在节目结束只是为了证明它的实际存储它们。

输出代码要求您的编译器支持C++ 11。

#include <iostream> 
#include <vector> 

int 
main() 
{ 
    int n,i; 
    std::vector<int> divisors; 

    std::cout << "enter your number for check: "; 
    std::cin >> n; 
    for(i = 2; i <= n; i++) 
    { 
      if(n%i == 0) 
      { 
        std::cout << i << std::endl; //divisor result 
        divisors.push_back(i); 
      } 
    } 

    std::cout << "Found " << divisors.size() << " divisor(s):"; 
    for (auto divisor : divisors) 
    { 
      std::cout << " " << divisor; 
    } 
    std::cout << std::endl; 
} 
+0

谢谢。有用 –