### Program 8:Sum of all digits in a number

Program 8:

```#include<stdio.h>
main()
{
int dummy,n,sum=0,x;
printf("Enter a number\n");
scanf("%d",&n);
dummy=n;
while(n>0)
{
x=n%10;
sum=sum+x;
n=n/10;
}
printf("The sum of all digits in %d is %d\n",dummy,sum);
}```
Explanation:
1. Here we did initialization for
• dummy----->To store the entered value(i.e 'n') as you will come to know at the end of the program
• n----------->To store number given by user.
• sum----->To store the sum of all digits in the number.It is initialized to zero
• x---------->To store n%10.
2. First of all we got a number 'n' from user and then stored it in a dummy variable called as 'dummy' for restoring the value.(remember this point).
3. Now the main logic comes here:-
• let the number 'n' be 321 and as 321>0,while loop gets executed
1. then x=321%10--->which is 1.
2. sum=0+1-------->1
3. n=321/10--------->32
4. The sum for the first loop execution is sum=1.
• Now the number 'n' has become '32' and n>0,while loop executes for 2nd time
1. then x=32%10--->which is 2.
2. sum=1+2-------->3
3. n=32/10--------->3
4. The sum when loop executed second time is sum=3.
• Now the number 'n' has become '3' and n>0,while loop executes for 3rd time
1. then x=3%10--->which is 3.
2. sum=3+3-------->6
3. n=3/10--------->0
4. The sum when loop executed third time is sum=6.
• Now as the number in variable 'n' is 0 which is not n>0 then the loop terminates.Then the final sum is '6'.
4. So now I hope you understood why the dummy variable is used.It is because the value in 'n' becomes 0 at the end of the program so for restoring this value to print at the end we used 'dummy'(as from the 2nd point).
5. Finally it prints the value in 'sum'.
Output:

#### 1 comment:

1. why this program cannot give the correct result for 10 digit number

 Donate Buy me a coffee \$2.00 USD Buy me a burger \$5.00 USD Buy me a pizza \$10.00 USD
 Compiler Used by me C-Free 5.0(Recommended) Other Compilers Code Blocks(Recommended) Online Compilers Ideone(Remember to give input before executing online where ever necessary)