Good work

but one small comment

:

Why having int and unsigned int?

Just for coherence, and avoiding compilers work:

Code:

*/* Recursive Version */*
unsigned int recursive_factorial(unsigned int n)
{
return n >= 1 ? n * recr_factorial(n-1) : 1;
}

Code:

*/* Iterative Version */*
unsigned int iter_factorial(unsigned int n)
{
unsigned int f = 1;
for(unsigned int i = 1; i <= n; i++)
{
f *= i;
}
return f;
}