C Program to Find and Print Product of all Digit of any Number

Here we will learn about how to create a program in C that will ask from the user to enter any number (at run-time) as input and then calculate and print the product of all the digit of that given number. This program will only calculate the non-zero digit's product:

#include<stdio.h>
#include<conio.h>
int main()
{
    int num, prod=1, rem;
    printf("Enter any number: ");
    scanf("%d", &num);
    while(num>0)
    {
        rem = num%10;
        if(rem!=0)
            prod = prod*rem;
        num = num/10;
    }
    printf("\nProduct of Digit = %d", prod);
    getch();
    return 0;
}

As the program was written under Code::Blocks IDE, therefore after successful build and run, here is output you will see on your screen. Let's suppose that user has supplied the input number as 2345 and pressed ENTER key:

c program product of all digit

Let's take another sample run:

As you can see from the above sample run, 0 is skipped while multiplying the digits of the given number, as if we will take 0 along with non-zero digit, then the product will be 0.

Here are some of the main steps used in above program:

  • Receive any number as input
  • Create a while loop that runs until the number is greater than 0
  • Inside the for loop, divide the number with 10 to find the remainder or last digit of the given number
  • If current remainder value is not equal to 0, then multiply it with prod variable and initialize it to the prod variable, that is responsible for the product of all non-zero digit of any given number
  • Never forgot to initialize 1 to the variable prod at start of the program, inside the main() function
  • After multiplying the remainder with prod, divide the number with 10 and continue to check and do the same operation
  • Let's suppose that user has provided the number say 247
  • At first run of the while loop, num holds 247 which is greater than 0
  • Then program flow goes inside the while loop, and num%10 or 247%10 or 7 will be initialized to rem variable which is not equal to 0, then again program flow goes inside the if block (present inside the while loop) and prod*rem or 1*7 or 7 will be initialized to prod (prod holds 1 initially) and num/10 or 247/10 or 24 will be initialized to num
  • Again at second run of the while loop, that is num holds the value 24 which is again greater than 0, then the program flow again goes inside the while loop and do the same operation as mentioned in above steps

C Online Test


« Previous Program Next Program »