C新手,求指教;解决方法

C新手,求指教;
打印斐波那契数列int型最大值,
#include<std_lib_facilities.h>
using namespace std;

int main(){
int i;
vector<int>v;
v[0]=1;
v[1]=1;
i=2;
do
{
v.push_back(v[i-1]+v[i-2]);}
while(v[i]<v[i-1]);
for(i=0;i<v.size();i++)
cout<<v[i]<<" ";
return 0;
}谢谢高手指点啦!(c或c++)

------解决方案--------------------
请将#include<std_lib_facilities.h>该头文件的代码贴出来好吗?
------解决方案--------------------
#include<iostream>
using namespace std;
const int n=50;
int main()
{
int i;
int *f;
f=new int[n];
f[0]=0;
f[1]=1;
for(i=2;i<n;i++)
{
f[i]=f[i-2]+f[i-1];

}
for(i=0;i<n;i++)
{
cout<<f[i]<< " ";
if(i%5==0) cout<<endl;
}
cout<<endl;
delete []f;
f=0;
return 0;
system("pause");
}
这是个不是很高明的程序,输出找到第一个成为负数的前一个就是你要找的啦!简便方法我也不会,刚学的c++




------解决方案--------------------
觉得你的想法不错。程序应该没有什么问题。主要是你一直往vector里面存数据会导致你的vector太大了吧。