In this example, the user is asked to enter a number. The program will then calculate the factorial of the give number. For any given number the factorial is calculated as below,
Factorial of n (n!) = 1 * 2 * 3 * 4 * 5 * … n
Factorial of a negative number does not exist and the factorial of 0 is 1.
#include <stdio.h> int main() { int num, fact=1; printf("Please enter the number: "); scanf("%d", &num); if(num < 0) { printf("Factorial of a negative number does not exist.\n"); } else { for(int i=1; i<=num; i++) { fact = fact * i; } printf("Factorial = %d\n", fact); } return 0; }
First, two variables are declared, namely num and fact. fact is initialized to 1 beacuse later on we have to use fact for multiplication. If we do not initiliaze fact with 1 then it will use some garbage value for mulitiplication or if we initialize it to 0 then our result will always be 0. Hence, it is important to remember that fact=1. Next, the user is asked to enter a number which is stored in num.
if(num < 0) { printf("Factorial of a negative number does not exist.\n"); } else { for(int i=1; i<=num; i++) { fact = fact * i; } printf("Factorial = %d\n", fact); }
As mentioned before, the factorial of a negative number cannot be calculated. So, if user enters a negative number then following message is displayed on the console,
If user enters a positive number then the program will go into the for-loop and will calculate the factorial. Finally, it displays the result on the console.
Output
Please enter the number: 6 Factorial = 720