C program to find sum of digits of a number

Write a C program to input a number and calculate sum of digits using for loop. How to find sum of digits of a number in C program. Logic to find sum of digits of a given number in C programming.

Example

Input

Input any number: 1234

Output

Sum of digits: 10

Required knowledge

Basic C programming, While loop

Logic to find sum of digits of a number

The main idea to find sum of digits can be divided in three steps.

  1. Extract last digit of the given number.
  2. Add the extracted last digit to sum.
  3. Remove last digit from given number. As it is processed and not required any more.

If you repeat above three steps till the number becomes 0. Finally you will be left with sum of digits.

Step by step descriptive logic to find sum of digits of a given number.

  1. Input a number from user. Store it in some variable say num.
  2. Find last digit of the number. To get last digit modulo division the number by 10 i.e. lastDigit = num % 10.
  3. Add last digit found above to sum i.e. sum = sum + lastDigit.
  4. Remove last digit from number by dividing the number by 10 i.e. num = num / 10.
  5. Repeat step 2-4 till number becomes 0. Finally you will be left with the sum of digits in sum.

Program to find sum of digits of a number

/**
 * C program to find sum of its digits of a number
 */

#include <stdio.h>

int main()
{
    int num, sum=0;

    /* Input a number from user */
    printf("Enter any number to find sum of its digit: ");
    scanf("%d", &num);

    /* Repeat till num becomes 0 */
    while(num!=0)
    {
        /* Find last digit of num and add to sum */
        sum += num % 10;

        /* Remove last digit from num */
        num = num / 10;
    }

    printf("Sum of digits = %d", sum);

    return 0;
}

In the above program I have used shorthand assignment operator sum += num % 10; which is equivalent to sum = sum + (num % 10);.

Output

Enter any number to find sum of its digit: 1234
Sum of digits = 10

Happy coding 😉