- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Environmental Science
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- articles and Answers
- Effective Resume Writing
- HR Interview articles
- Computer Glossary
- Who is Who
C Program to Sum the Digits of Any Given Number
In the realm of programming, efficiency and accuracy are paramount. One fundamental task often encountered is summing the digits of a given number. This seemingly simple task can be approached in various ways, but harnessing the power of the C programming language can provide a robust solution. In this article, we will delve into the intricacies of crafting a C program to sum the digits of any given number, exploring the algorithm, implementation, and test cases to ensure its reliability.
Algorithm:
The algorithm to sum the digits of a number involves iterating through each digit of the input number and accumulating their sum.
- Accept the input number from the user.
- Initialize a variable to store the sum of digits.
- Iterate through each digit of the number using a loop.
- Extract the last digit of the number using the modulo (%) operator.
- Add the extracted digit to the sum variable.
- Remove the last digit from the number using integer division (/).
- Repeat steps 4-6 until all digits have been processed.
- Display the sum of digits.
C Program Implementation :
#include <stdio.h>
// Function to calculate sum of digits
int sumDigits(int num) {
int sum = 0;
while (num != 0) {
sum += num % 10; // Extract the last digit and add to sum
num /= 10; // Remove the last digit
}
return sum;
}
int main() {
/* If you want to get input from users
int number;
printf("Enter a number: ");
scanf("%d", &number);
int sum = sumDigits(number);
printf("Sum of digits: %d\n", sum);
*/
// Test cases
printf("\nTest Cases:\n");
printf("1234 -> Expected: 10, Actual: %d\n", sumDigits(1234));
printf("987654321 -> Expected: 45, Actual: %d\n", sumDigits(987654321));
printf("505 -> Expected: 10, Actual: %d\n", sumDigits(505));
printf("0 -> Expected: 0, Actual: %d\n", sumDigits(0));
return 0;
}
Test Cases:
Let's validate the functionality of our program with some test cases:
1. Input: 1234
Expected Output: Sum of digits: 10
2. Input : 987654321
Expected Output: Sum of digits: 45
3. Input: 505
Expected Output: Sum of digits: 10
4. Input: 0
Expected Output: Sum of digits: 0
By running these test cases, we can ensure that our C program accurately computes the sum of digits for various input scenarios.
We will also implement same code with different method
Method 1: Using Recursion
#include <stdio.h>
// Function to calculate sum of digits using recursion
int sumDigits(int num) {
if (num == 0)
return 0;
return (num % 10) + sumDigits(num / 10);
}
int main() {
/* If you want to get input from user
int number;
printf("Enter a number: ");
scanf("%d", &number);
int sum = sumDigits(number);
printf("Sum of digits: %d\n", sum);
*/
// Test cases
printf("\nTest Cases:\n");
printf("1234 -> Expected: 10, Actual: %d\n", sumDigits(1234));
printf("987654321 -> Expected: 45, Actual: %d\n", sumDigits(987654321));
printf("505 -> Expected: 10, Actual: %d\n", sumDigits(505));
printf("0 -> Expected: 0, Actual: %d\n", sumDigits(0));
return 0;
}
Method 2: Using a For Loop
#include <stdio.h>
// Function to calculate sum of digits using a for loop
int sumDigits(int num) {
int sum = 0;
for (; num != 0; num /= 10)
sum += num % 10;
return sum;
}
int main() {
/* If you want to get input from users
int number;
printf("Enter a number: ");
scanf("%d", &number);
int sum = sumDigits(number);
printf("Sum of digits: %d\n", sum);
*/
// Test cases
printf("\nTest Cases:\n");
printf("1234 -> Expected: 10, Actual: %d\n", sumDigits(1234));
printf("987654321 -> Expected: 45, Actual: %d\n", sumDigits(987654321));
printf("505 -> Expected: 10, Actual: %d\n", sumDigits(505));
printf("0 -> Expected: 0, Actual: %d\n", sumDigits(0));
return 0;
}
Method 3: Using a Do-While Loop
#include <stdio.h>
// Function to calculate sum of digits using a do-while loop
int sumDigits(int num) {
int sum = 0;
do {
sum += num % 10;
num /= 10;
} while (num != 0);
return sum;
}
int main() {
/* If you want to take input from users
int number;
printf("Enter a number: ");
scanf("%d", &number);
int sum = sumDigits(number);
printf("Sum of digits: %d\n", sum);
*/
// Test cases
printf("\nTest Cases:\n");
printf("1234 -> Expected: 10, Actual: %d\n", sumDigits(1234));
printf("987654321 -> Expected: 45, Actual: %d\n", sumDigits(987654321));
printf("505 -> Expected: 10, Actual: %d\n", sumDigits(505));
printf("0 -> Expected: 0, Actual: %d\n", sumDigits(0));
return 0;
}
In conclusion, mastering the art of summing digits in a given number showcases the elegance and efficiency of C programming. With a solid understanding of the algorithm and thorough testing, our program stands ready to handle any numerical challenge thrown its way. Happy coding!
ads