/*bignumwords.c - print the English words representing any given number from 0 to 999,999. Copyright (c) 1998 by Matthew Belmonte.*/ /*print the word that represents the given number in [1,19]*/ static void print_lownums(n) int n; { switch(n) { 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; case 10: printf("ten"); break; case 11: printf("eleven"); break; case 12: printf("twelve"); break; case 13: printf("thirteen"); break; case 14: printf("fourteen"); break; case 15: printf("fifteen"); break; case 16: printf("sixteen"); break; case 17: printf("seventeen"); break; case 18: printf("eighteen"); break; case 19: printf("nineteen"); } } /*print the word that represents the given number in {20,30,40,50,60,70,80,90}*/ static void print_tens(n) int n; { switch(n) { case 20: printf("twenty"); break; case 30: printf("thirty"); break; case 40: printf("forty"); break; case 50: printf("fifty"); break; case 60: printf("sixty"); break; case 70: printf("seventy"); break; case 80: printf("eighty"); break; case 90: printf("ninety"); } } /*print the word that represents the given number in [1,999]*/ static void print_hundreds(n) int n; { if(n >= 100) { print_lownums(n/100); printf(" hundred "); n %= 100; } if(n >= 20) { print_tens(n/10*10); n %= 10; if(n != 0) { printf("-"); print_lownums(n); } } else print_lownums(n); } /*print the word that represents the given number in [0,999999]*/ static void print_num(n) long n; { if(n >= 1000L) { print_hundreds((int)(n/1000L)); printf(" thousand "); n %= 1000L; if(n != 0L) print_hundreds((int)n); } else if(n == 0L) printf("zero"); else print_hundreds((int)n); printf("\n"); } int main() { long n; printf("Enter a positive integer from 0 to 999,999: "); scanf("%ld", &n); print_num(n); return 0; }