-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 回答