我正在尝试打印前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{
}
}
答案 0 :(得分:4)
vector<int>
只是一个类型名称。您需要将参数命名为能够使用它。您也不能在循环中尝试使用类型名称作为变量。固定代码:
int findeven( vector<int> v ) {
if (v[i] % 2 == 0)
cout << v[i];
//...
}
由于你没有改变函数内部的向量,所以最好通过const引用传递它以避免复制它:
int findeven( const vector<int>& v );
在使用之前,您还需要使该功能可见。现在,它是在main
函数之后定义的,你会得到一个错误,因为你试图在编译器还没有看到它的声明的地方调用它。把它放在main
之前(或者至少是它的声明)。