- Write a program in c to print digits of a number in words.
Given a positive number N, we have to print the digits of N in words in Most significant digit(MSD) to least significant digit(LSD) sequence.
For Example
Input Number : 2345
Output : Two Three Four Five
C program to print digits of a number in words
In this program, we first take a positive number as input from user using scanf function. Then we reverse the number as we want to print the most significant digits first(from leftmost digit to rightmost). After reversing, we remove rightmost digit one by one and pass it to “printDigit” function. Function “printDigit” that takes a positive number less than 10 as input and print it words using a switch statement.
#include<stdio.h> #include<conio.h> void printDigit(int digit); int main() { int reverse = 0, digit, num, mod; printf("Enter a positive Integer\n"); scanf("%d", &num); /* reverse the input number */ while (num > 0) { reverse = (reverse * 10) + num % 10; num /= 10; } num = reverse; while (num > 0) { digit = num % 10; printDigit(digit); num = num / 10; } getch(); return 0; } void printDigit(int digit){ switch (digit) { case 0: printf("Zero "); break; case 1: printf("One "); break; case 2: printf("Two "); break; case 3: printf("Three "); break; case 4: printf("Four "); break; case 5: printf("Five "); break; case 6: printf("Six "); break; case 7: printf("Seven "); break; case 8: printf("Eight "); break; case 9: printf("Nine "); break; } }
Program Output
Enter a positive Integer 2401 Two Four Zero One