Example of c part 14: sum of all digits

                    Sum of all digits
PROGRAM :
#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);
}
Output:
Enter a number
673
The sum of all digits in 673 is 16
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'.