Wikipedia define factorial as following
In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n.
Math is Fun gives the following definition
The factorial function (symbol: !) means to multiply a series of descending natural numbers.
Example
4! = 4 × 3 × 2 × 1 = 24
7! = 7 × 6 × 5 × 4 × 3 × 2 × 1 = 5040
1! = 1
0! = 1, because the following reason.
We can rearrange one thing only one way, as 0 is also an entity so we can rearrange it in one way.
Also we can prove it mathematically with the help of Combination
Let us consider n is the number of different people, if we choose a team consisting with n people then we can only choose it one time, so

Now lets start coding using for loop
#include<stdio.h>
int main(){
int n,i;
float fact=1;
printf("Enter your n\n");
scanf("%d",&n);
if(n <0 ) printf("\aPlease enter a positive number\n");
else if((n == 1) || (n == 0)){
printf("\aThe factorial is 1\n");
}
else{
for(i=1;i<=n;i++){
fact =fact*i;
}
printf("\aThe factorial is %.2f\n",fact);
}
return 0;
}
Using while loop
#include<stdio.h>
int main(){
int n,i=1;
float fact=1;
printf("Enter your n\n");
scanf("%d",&n);
if(n <0 ) printf("\aPlease enter a positive number\n");
else if((n == 1) || (n == 0)){
printf("\aThe factorial is 1\n");
}
else{
while(i<=n){
fact =fact*i;
i++;
}
printf("\aThe factorial is %.2f\n",fact);
}
return 0;
}
Using user defined function
#include<stdio.h>
float factorial( int n){
if((n == 1) || (n == 0) ) return 1;
else return n*factorial(n-1);
}
int main(){
int n;
printf("Enter your n\n");
scanf("%d",&n);
if(n <0 ) printf("\aPlease enter a positive number\n");
else printf("\aThe factorial is %.2f\n",factorial(n));
return 0;
}