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
Post a Comment