How this code compiles even though i have not written return in else section?
#include <stdio.h>
int fibo(int n,int a,int b)
{
int x;
if(n==1)
printf("%d\n",b);
else
fibo(n-1,a+b,a);//Here
}
int main()
{
int num;
scanf("%d",&num);
fibo(num,1,1);
return 0;
}
or
#include <stdio.h>
int fibo(int n,int a,int b)
{
int x;
if(n==1)
return b;
else
fibo(n-1,a+b,a);//Here
}
int main()
{
int num;
scanf("%d",&num);
printf("%d",fibo(num,1,1));
return 0;
}
I tried many compilers still it returns 13 for input 7.Let's forget about compilation for second,then also how i am getting 13 (in second code) because 13 is returned to parent fibo function and parent fibo function is not returning to its parent,then how in main function value 13 is returned.