NOTE: The program discussed in this article has no use in practice but it would definitely help you understand a few things, so please read on…
What this program does is that it takes a number as input (such as 12345) and outputs the sum of the individual digits, which in this case is 15 (1+2+3+4+5).
For achieving the required result, we need to do two things, first we should store each of the individual digits in the number and second, we need to add those numbers, which will give us the required result.
Let us move on to the first stage where we need to separate the digits. Here are the steps:-
-
STEP 1: We declare a variable num as integer type and an array sep[] again as integer type.
Suppose num=12345
- STEP 2: We will be fetching digits from the right (5) to
left (1). For this, we use the modulus (%) operator which divides two numbers,
giving us the remainder.
sep[0]=12345 % 10 Now, num=12345 sep[0]=5 (last digit has been fetched)
- STEP 3: Now num is divided by 10 and stored to itself (i.e.
num).
num=num/10 Now, num=1234 (integer type cannot hold fractional values, which ultimately gets eliminated) sep[0]=5
- STEP 4: Step 2 and Step 3 are repeated until num<10.
- STEP 5: Now,
num=1 sep[0]=5 sep[1]=4 sep[2]=3 sep[3]=2 Now, we just need to store the value of num to sep[4] and -1 is to sep[5] (it will mark the end of array) We have, sep[0]=5 sep[1]=4 sep[2]=3 sep[3]=2 sep[4]=1 sep[5]=-1
The easy part, now we just need to add all the elements in the array sep[] until the end of array is reached (-1).
Here is the program…
//C++ Program to add the digits of a
//number individually and output the sum
#include<iostream.h>
void main(void) { int i=0,total=0,num; int sep[10]; cout<<"Enter any number: "; cin>>num; while(num>=10) { sep[i]=num%10; num=num/10; i++; } sep[i]=num; sep[i+1]=-1; i=0; while(sep[i]!=-1) { total=total+sep[i]; i++; } cout<<endl<<"TOTAL: "<<total<<endl; }
Hope this helps!