On Wed, 18 Dec 2002, Abhijeet D Mhatre wrote:
I was experimenting with a common c factorial problem when I got a totally unexpected result.
unexpected?
# include <stdio.h> main(){
return type defaults to int
int fact; int x; fact=factorial(6); printf ("%i\n",fff());
so where is the statement that returns an int?
}
int factorial(int x){ if(x>1) return(x*factorial(x-1));
what happens if x<=1? what is the return value then?
}
int fff () { ; }
and what is this supposed to return? the printf will print the return value of this function, but this function doesn't return anything.
Naturally I was expecting 1 as the answer. But I am getting the answer 720 which is 6!.
pray tell us why you expected this so naturally.
Philip