Sum of individual digits

 #include<stdio.h>

#include<conio.h>

#include<ctype.h> // For isdigit function


void main() 

    char num[11]; // 10-digit number + 1 for null terminator

    int i, sum = 0, val, r;


    clrscr();


    while (1) // Loop for validation and re-entry

    { 

        sum = 0; // Reset sum for every iteration


        printf("\tEnter a 10-digit number: "); 

        scanf("%s", num);


        // Check if the input contains exactly 10 digits

        for (i = 0; i < 10; i++) 

        { 

            if (!isdigit(num[i]) || num[10] != '\0') // Validate digit and check for null terminator

            { 

                printf("\nInput Invalid!!!\n"); 

                fflush(stdin); // Clear input buffer

                goto loop1; // Go back to re-enter the number

            }

            sum += (num[i] - '0'); // Convert char to int and add to sum

        }


        break; // Exit loop if input is valid

    loop1:;

    }


    // Compute the digital root

    val = sum;

    do 

    { 

        sum = 0; 

        while (val != 0) 

        { 

            r = val % 10; // Extract the last digit

            sum += r; // Add the digit to sum

            val /= 10; // Remove the last digit

        } 

        printf("\nIntermediate Sum: %d", sum); 

        val = sum;

    } while (sum > 9);


    printf("\nDigital Root: %d", sum); 


    getch(); 

}

Comments

Popular Posts