2016-09-29 3 views
-5

私は関数呼び出しで引数が少なすぎるというエラーが表示されているので、これを動作させるのに役立つ必要があります。コードの目的は素数の配列を表示することであり、問​​題は2つの関数をmain関数に呼び出すことです。ありがとう!呼び出しが間違っているため、エラーコードC3861が表示されますか?

#include <iostream> 
using namespace std; 

#include <iomanip> 
using std::setw; 
#include <vector> 

int main() 
{ 

    std::vector<int> primes; 
    computePrimes(); 
    displayPrimes(); 

    system("pause"); 
    return 0; 
} 
void computePrimes(vector<int> primes) { 
    cout << "\nCOMPUTING PRIME NUMBERS"; 
    for (int i = 3; i < 100; i++) 
    { 
     bool prime = true; 
     for (int j = 0; j<primes.size() && primes[j] * primes[j] <= i; j++) 
     { 
      if (i % primes[j] == 0) 
      { 
       prime = false; 
       break; 
      } 
     } 
     if (prime) 
     { 
      primes.push_back(i); 
      cout << i << " "; 
     } 
    } 

} 
void displayPrimes(vector<int> primes) { 
    cout << "\n\nPRIMES BETWEEN 1 AND" << primes.size(); 
    cout << "\n"; 
} 
+0

また、[system( "pause") '](http://stackoverflow.com/a/36374595/560648)で停止してください! –

+0

人々があなたの質問に答えるのを助けるためには、エラーについてより具体的に説明する必要があります。投稿を編集して[mcve]のコンパイルから得られる正確なエラーを組み込むようにしてください(できれば、コピー+貼り付けを使用して転写エラーを避ける)。 –

答えて

1

あなたのコンパイラがお手伝いします。あなたがcomputePrimesprimesを供給する必要がある

は、それはコンパイルエラーを修正します

computePrimes(primes);

displayPrimes(primes);

を書きです。そうでない場合mainが変更されたベクトルを受信しません

void computePrimes(vector<int>& primes){

:次に、あなたは参照によってベクトルを受け入れるように機能computePrimesを変更する必要があります。まあ

0

あなたは、関数ヘッダ

void displayPrimes(vector<int> primes); 

void computePrimes(vector<int> primes); 

を見ればあなたがそうあなたのコードがあるべき彼らの両方が、あなたがタイプvector<int>の変数を渡すことを期待していることがわかり:

computePrimes(primes); 
displayPrimes(primes); 
+0

私はばかだ、私はそれを試みた、それは私に別のエラーを与えたが、それはコード内の何か他のものだった。ありがとうございました! – LcheesyD

関連する問題