×

Factorial Program in C Using While Loop

Before looking into the mechanism of factorial program, first, you have to understand about the working of a while loop.

While Loop

The syntax that has been used for the “while” loop in C programming language is:

while (termination condition) {
  // the body of the loop 
}

Working of While Loop

Initially, we use the parentheses for storing the termination condition of the While loop.

Then, there can be two outcomes True or False.

Firstly, if the result is true, then the control will automatically execute the body of the loop. It will continue to evaluate again and again until the termination condition is false.

Secondly, if the result is false, then the control will definitely come out of the While loop and will dismiss the While Loop.    

Now, we are going to understand how the factorial of any positive integer is evaluated or calculated using C language.

While loop program in c programming language to find factorial of an entered integer:

With the help of below mentioned example you can easily come to know about the method of calculating of a positive integer provided by the user.

The following formula is used for calculating the factorial of an inputted positive integer ‘n’:

factorial of “n” or (n!) = 1 * 2 * 3 * 4....n

If we talk about the factorial value of 0 is always 1 and the factorial of any negative integer does not exist.

Following Program calculates the Factorial of a natural number using while loop in C programming language:

#include<stdio.h>
int main()
{
int a, b=1, c=1; // declaring various variables and initializing values of b and c as 1, 1 simultaneously  
printf("Enter the natural number whose factorial you want to print:\n"); // taking a value as input from the user 
scanf("%d", &a); // assigning the value entered by the user to a
// providing termination condition so that we can avoid loop from running to infinity     
while(b<=a) // initializing loop for calculating the factorial of a positive integer provided by the user as an input
{
        c=c*b; // main body of the while loop that is to be executed until it the loop gets terminated because of the false value retained by the execution of termination condition
        b++;
}
    printf("The factorial of the given number %d is as follow %d", a, c); // printing the output
return 0;
}

Output:

Enter the natural number whose factorial you want to print:
5
The factorial of the given number 6 is as follow 720

Explanation:

Initially, the system will let the user to enter any positive integer and assign the entered number to the variable ‘a’.

After that, the code will multiply the values of ‘b’ with the value of ‘c’ with the help of ‘while’ loop.  This ‘while’ loop will execute the multiplication until the value of ‘b’ does not equal to the value of ‘a’.

And, at last, the program will automatically print the factorial value of the given number after the termination of while loop.

Step by Step explanation of the factorial values during the execution of the program:

Let us begin with the positive integer 6 which is entered by the user as an input.

Now, the values of a, b, c are 6, 1, and 1.

After that, the ‘while’ loop will start the execution until the termination condition returns false value.

Case 1: b<=n (1<=6), here, the termination condition of while loop returns True boolean value, and the control moves to the following statements of while body:

c=c*b (c=1*1)    so, c=1

b++ (b=b+1)    so, b=2

Case 2: b<=a (2<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=1*2)    so, c=2

b++ (b=b+1)    so, b=3

Case 3: b<=n (3<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=2*3)    so, c=6

b++ (b=b+1)    so, b=4

Case 4: b<=n (4<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=6*4)    so, c=24

b++ (b=b+1)    so, b=5

Case 5: b<=n (5<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=24*5)    so, c=120

b++ (b=b+1)    so, b=6

Case 6: b<=n (6<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body.

c=c*b (c=120*6)    so, c=720

b++ (b=b+1)    so, b=7

Case 7: b<=n (7<=6), here, the termination condition of while loop returns False boolean value. So, the control goes out from the while loop and print the 720 in the output console on the screen.

Output:

Enter the natural number whose factorial you want to print:
6
The factorial of the given number 6 is as follow 720

Related Topics

Compilation Process in C language

What is the Compilation Process?  The compilation is a method whereby the source code is converted into object code. It is achieved with compiler assistance. The compiler tests the source code for syntactic...

3 minutes read.

C Program to Find Largest Number Using Dynamic Memory Allocation

This tutorial will teach us how to locate the highest number a user has ever input into a dynamically allocated memory. C Program: #include <stdio.h> #include <stdlib.h> int main ()  {   int no;   double *data_n;   printf...

1 minute read.

While Loop Syntax in C

What is Loop? The statements in the sequence are repeatedly executed via looping statements in C until the condition is met. The body of a loop and a control statement make...

4 minutes read.

Banker’s Algorithm in C

Introduction Before doing a "s-state" check to look for potential activities and deciding if allocation should be allowed to continue, the banker's algorithm, a resource allocation and deadlock avoidance algorithm, tests...

5 minutes read.

What is a buffer in C?

A buffer is an area of memory set aside for the temporary storage of data. A data buffer (or just buffer) is a region of a physical memory storage used to...

5 minutes read.

Formatted Input and output function in C

Formatted I/O functions display multiple outputs to the user by taking various inputs. All data types like int, float, char and double are supported by the formatted I/O function. In...

4 minutes read.

SJF Scheduling Program in C

The SJF (shortest job first) or the shortest job next is the programming scheduling in the C. It is one of the CPU scheduling programming. The SJF is defined as...

4 minutes read.

Commenting in C

Commenting in C Commenting in the C language is used to give out the information about the lines of the code which are included. It is one of the things that...

3 minutes read.

Free() Function in C

Free() function is a built-in function which is define in the stdlib.h header file. If we want to use this function in our program, we must include the stdlib.h header...

4 minutes read.

Find out Power without using POW function in C

Introduction: In this discussion, we will discuss how we find out power without using the POW function in C. In this article, you'll understand how to compute integer powers in...

3 minutes read.

Passing Array to Function in C

Need to pass Arrays? The need to pass arrays to a function arises when we need to pass a list of values to a given function. During the course of our programming...

4 minutes read.

What are linker and loader in C

Linker and loader are utility programs that have a significant role in executing a program. Linker: A linker is a program that joins the object files produced by the assembler/ compiler...

3 minutes read.

Built-in functions in C

The function is a set of instructions and statements enclosed in the "{}" delimiter. In c, there are two types of functions. Pre-define functions/ Built-in functionsUser define function. Built-in functions in C:- These...

8 minutes read.

Armstrong Number in C

The Armstrong number is defined as the sum of each of its digits to the power of the number base for the each given number with any given number base....

3 minutes read.

Local Labels in C

Anyone who has written programs in the C programming language is required to be familiar with the "go to" and "labels" used in C to navigate between functions. "Local labels"...

4 minutes read.

Array Of Structures in C

The C programming language allows us to store multiple elements of the same type in arrays. We can use strings to store multiple elements of a character data type. Still,...

4 minutes read.

C Programming Tutorial

What is C Programming C is most popular and widely used computer programming language. It was developed by Dennis Ritchie in 1972 at the Bell Lab. It is used to develop system application software. There...

8 minutes read.

Types Of Structures In C

We can normally store elements of the same datatype with the help of an array in C programming. We can store multiple numbers of elements of a character data type...

3 minutes read.

Projects on C language in 2024

Introduction Most aspiring programmers learn the C language as their first high-level programming language. The most flexible language utilized in every industry is, without a doubt, C. Even after 50 years...

9 minutes read.

Use of free() function in C

Introduction The free() function uses in C programming language. The free() function in the C programming language uses to release or deallocate the memory blocks; these blocks are previously allocated by calloc(), malloc() or realloc()...

3 minutes read.