Print fiibonacci series using recursion(print in recursive function,do not use loops)

I am required to print the fibonacci series using a recursive function

int fib(int n) where n is the number of elements in the series.I pass this through main.And i am not allowed to use any loops in main,such as

Code:

`int b=0;`

for(c=0;c<n;c++)

{

b=fib(n);

printf("%d",b);

}

I am supposed to print the elements of the series in the recurssive function itself.And i should print only the elements of the series and nothing else.I have tried a program and it works fine.But is there a much simpler code than this.Also,any tips for improving my coding style is abolutely welcome.This is my code

Code:

`#include<stdio.h>`

static int r=0;

int fib(int n);

int main(void)

{

int n=0;

printf("enter the number of elements");

scanf("%d",&n);

fib(n);

}

int fib(int n)

{

int p=0;

if(n<0)

{

printf("enter a number greater than 0");

return -1;

}

if(n==1)

{

if(r==0)

{

printf("%d\n",0);

r++;

return 0;

}

else

{

return 0;

}

}

else if(n==2)

{

if(r==1)

{

printf("%d\n",1);

r++;

return 1;

}

else

{

return 1;

}

}

else if(n%2==1)

{

if(n>r)

{

p=fib(n-2)+fib(n-1);

printf("%d\n",p);

r=n;

return p;

}

else

{

p=fib(n-2)+fib(n-1);

return p;

}

}

else if(n%2==0)

{

if(n>r)

{

p=fib(n-1)+fib(n-2);

printf("%d\n",p);

r=n;

return p;

}

else

{

p=fib(n-1)+fib(n-2);

return p;

}

}

return 0;

}

Thanks.