Problem
Without using a switch case, how can you print a given number in words using the C programming language?
Solution
In this program, we are checking three conditions to print a two-digit number in words −
if(no<0 || no>99)
entered number is not a two digit
else if(no==0)
print first number as zero
else if(no>=10 && no<=19)
Print single digit number in words
else if(no>=20 && no<=90)
if(no%10 == 0)
Print two-digit number in words
Program
#include<stdio.h> #include<string.h> int main(){ int no; char *firstno[]={"zero","ten","eleven","twelve","thirteen", "fourteen","fifteen","sixteen","seventeen", "eighteen","nineteen"}; char *secondno[]={"twenty","thirty","forty","fifty","sixty", "seventy","eighty","ninty"}; char *thirdno[]={"one","two","three","four","five","six","seven","eight","nine"}; printf("enter a number:"); scanf("%d",&no); if(no<0 || no>99) printf("enter number is not a two digit number\n"); else if(no==0) printf("the enter no is:%s\n",firstno[no]); else if(no>=10 && no<=19) printf("the enter no is:%s\n",firstno[no-10+1]); else if(no>=20 && no<=90) if(no%10 == 0) printf("the enter no is:%s\n",secondno[no/10 - 2]); else printf("the enter no is:%s %s\n",secondno[no/10-2],thirdno[no%10-1]); return 0; }
Output
enter a number:79 the enter no is: seventy nine enter a number:234 enter number is not a two digit number