2015-11-12 94 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

謝謝。有用 –