# Sum of Digits in C Programming

Program to calculate sum of digits in C of a number using loop, explained logic and test cases.

Example,

Input number: 123
Output = 1+2+3 =6

## Logic to find sum of digits:

• Have two variables” sum” and “remainder” with initial value 0.
• loop through the number
• Get remainder of the number with modulus 10. e.g. 123 % 10 =3(last digit) and store in remainder.
• add value of variable “sum” and remainder e.g. 0+3
• Remove the last digit as it is processed and get the number again by dividing 10. e.g. 123/10 =12.
• process the number 12 again in the loop and so on until value of input number becomes 0
• loop end
• sum variable will contain final result.

## Program to calculate sum of digits in C

``````/*Example program to find sum of digits in C*/
#include <stdio.h>

int sumOfDigits(int number){

//initialize values with 0
int sum = 0;
int remainder = 0;

//Run the loop until value of number is 0
while (number != 0) {
//calculate remainder using % operator
//lets say number is 123, so, remainder will be
// 123 % 10 = 3
remainder = number % 10;

//add value of earlier sum+ remainder
//e.g. 0+ 3
sum = sum + remainder;

//get remaing number i.e. 123/10 =12
number = number / 10;

//continue the number in loop until
//value of number becomes 0.
//once it is 0, sum variable will
//have the summation result.

}//loop end

//return the sum
return sum;
}

//Test program
int main()
{
int sum =0;
int number = 0;

printf("Enter a number:");
scanf("%d",&number);

sum = sumOfDigits(number);

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

return 0;
}

``````

Test Cases

Input:12345
Output = 15

Input: -12345
Output = -15

Input: 0
Output = 0

## NOTES:

Within the while loop in C program above, the remainder statement can be eliminated as below.

``````while (number != 0) {

sum+=number%10;
number=number/10;
}
``````