C++ Ciąg Fibonacciego

int fib(int x){
x=x-1; //poniewaz to c++ i liczymy od zera
int a[x];
a[0]=1;
a[1]=1; //element drugi
a[2]=2; //element trzeci
if(x<1){
cout<<"Nie ma takiej liczby"<<endl;
return 0;
}
if(x<=2){
return 1;
}
int i=1;
do{
i++;
a[i]=a[i-2]+a[i-1];
}
while(x!=i);
return a[i];
}