-6

最初の 25 個のフィボナッチ数の偶数を出力しようとしています。ただし、以下の関数のパラメーターとしてベクトルを使用すると問題があると思います。私が間違っていることがわかりますか?

#include <iostream>
#include <vector>
using namespace std;

int main(){
  int j=1, k=1, sum;
  vector<int> myvector(25);
  for (int i=0; i<25; i++) {
    //cout << j << " ";
    myvector[i] = j;
    sum=j+k;
    j=k;
    k=sum;
}
    findeven(myvector);
    system("pause");
}



int findeven (vector<int>){
for (int i = 0, i < 25; i++){
if (vector[i] % 2 == 0){
    cout << vector[i];
}
}
else{
}

}

4

1 に答える 1

5

vector<int>は単なる型名です。パラメータを使用できるようにするには、パラメータに名前を付ける必要があります。また、ループで実行しようとしているように、型名を変数として使用することもできません。固定コード:

int findeven( vector<int> v ) {
    if (v[i] % 2 == 0)
        cout << v[i];
    //...
}

関数内のベクトルを変更しないため、コピーを避けるために const 参照で渡すことをお勧めします。

int findeven( const vector<int>& v );

また、関数を使用する前に、関数を可視にする必要があります。現在、それはmain関数の後に定義されており、コンパイラーがまだその宣言を見ていない場所でそれを呼び出そうとしているため、エラーが発生します。それを前に置きますmain(または少なくともその宣言)。

于 2013-07-25T22:49:52.510 に答える