Skip to main content

How do I write a C program to find the factorial of a number?

 Finding the factorial of a number is a common problem in computer programming. A factorial of a number is the product of all positive integers up to and including that number. For example, the factorial of 5 is 5 * 4 * 3 * 2 * 1 = 120.

In C programming, we can write a program to find the factorial of a number using a loop. Here's an example program:

c
#include <stdio.h> int main() { int num; unsigned long long fact = 1; printf("Enter a positive integer: "); scanf("%d", &num); for(int i=1; i<=num; ++i) { fact *= i; } printf("Factorial of %d = %llu\n", num, fact); return 0; }

In this program, we first declare the variables num and fact. We then prompt the user to enter a positive integer using the printf() and scanf() functions. Note that we use the unsigned long long data type for the variable fact because the factorial of a large number can become very large, and using unsigned long long provides enough range to handle such cases.

We then use a for loop to calculate the factorial of the number entered by the user. The loop starts from 1 and goes up to num, multiplying each integer along the way to the fact variable.

Finally, we print the factorial using the printf() function.

Let's step through the program and understand how it works.

  1. We include the stdio.h header file, which contains the declarations of standard input/output functions.

  2. We declare two variables num and fact, where num stores the number for which we need to find the factorial, and fact stores the factorial value.

  3. We prompt the user to enter a positive integer using the printf() function, which displays the message "Enter a positive integer: " on the screen.

  4. We use the scanf() function to read the integer entered by the user and store it in the num variable.

  5. We use a for loop to calculate the factorial of the number entered by the user. The loop starts from 1 and goes up to num. In each iteration of the loop, we multiply the current value of fact with the loop counter i. Since we start fact with a value of 1, the first iteration multiplies 1 with 1, resulting in fact being equal to 1. The second iteration multiplies 1 with 2, resulting in fact being equal to 2. The third iteration multiplies 2 with 3, resulting in fact being equal to 6. This process continues until the loop counter i reaches the value of num.

  6. Finally, we print the factorial of the number entered by the user using the printf() function. The %d format specifier is used to display the value of num, and the %llu format specifier is used to display the value of fact.

When we run this program and enter a positive integer, it calculates the factorial of that number and displays the result on the screen. If the user enters a negative integer, the program will still execute but will give an incorrect result, as the factorial of a negative number is not defined. If the user enters a very large number, the program may take a long time to execute or may run out of memory, as the factorial of a large number can become very large.

Comments

Popular posts from this blog

How do I scan a line in C (with spaces separating words)?

In C programming, the standard way to scan a line of text with spaces separating words is to use the fgets() function. The fgets() function reads a line of input from a stream (such as stdin for keyboard input) and stores it in a character array. It takes three arguments: the character array to store the input, the maximum number of characters to read, and the input stream to read from. Here's an example of using fgets() to scan a line of input with spaces: c Copy code # include <stdio.h> int main () { char input[ 100 ]; printf ( "Enter a line of text: " ); fgets(input, 100 , stdin ); printf ( "You entered: %s" , input); return 0 ; } In this example, we declare a character array input with a size of 100 to store the line of text. We then prompt the user to enter a line of text using printf() . The fgets() function is then used to read the line of text and store it in the input array. The thi...

How do I convert a C program to an executable (e.g. .exe) file?

In C programming, once you have written your code and compiled it, you will need to convert it to an executable file format that can be run on your computer. Here are the steps to convert a C program to an executable file: Step 1: Write your C program First, you need to write your C program. You can use any text editor or integrated development environment (IDE) to write your code. Once you have written your program, save it with a .c extension. Step 2: Compile the C program Next, you need to compile your C program using a compiler. A compiler is a program that translates your C code into machine language that the computer can understand. There are many C compilers available for different platforms, such as GCC for Linux, MinGW for Windows, and Xcode for macOS. For example, if you are using GCC on Linux or macOS, you can open a terminal window and navigate to the directory where your C program is saved. Then, you can compile the program using the following command: Copy ...