/* Created 2/2/98 Solution to Assignment #4 Duy Nguyen */ #include const int MAX = 20; /* Define strings */ char ones[10][MAX] = {"zero", "one", "two", "three", "four","five","six", "seven","eight","nine"}; char tens[10][MAX] = {"ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen", "eighteen","nineteen"}; char tees[9][MAX] = {"ten","twenty","thirty","forty","fifty","sixty", "seventy","eighty","ninety"}; char dreds[MAX] = "hundred"; void printdigit(int num); void print1x(int num); void printtens(int num); void printhundreds(int num); /* Print for 0 <= num <=9 */ void printdigit(int num) { cout << ones[num]; } /* Print for 10 <= num <= 19 */ void print1x(int num) { int one_digit = 0; one_digit = num%10; cout << tens[one_digit]; } /* Print for num an exact multiple of 10 */ void printx0(int num) { int ten_digit = 0; ten_digit = num/10; cout << tees[ten_digit]; } /* Print for 0 <= num <= 99 */ void printtens(int num) { int ten_digit = 0; int one_digit = 0; ten_digit = num/10; one_digit = num%10; if (ten_digit == 0) printdigit(num); else if (ten_digit == 1) print1x(num); else cout << tees[ten_digit-1] << "-" << ones[one_digit]; } /* Print for 0 <= num <= 999 */ void printhundreds(int num) { int hun_digit = 0; int tens_digit = 0; hun_digit = num/100; tens_digit = num%100; if (hun_digit == 0) printtens(num); else { cout << ones[hun_digit] << " hundred "; printtens(tens_digit); } } /* Test driver for the functions developed above */ main() { int num, i; for (i = 0;i < 10;i++) { cout << "Enter a number: "; cin >> num; cout << "\n"; if (num <= 10) printdigit(num); else if ((num>=10) && (num <= 19)) print1x(num); else if ((num >= 10) && (num <= 99)) printtens(num); else if (num >= 100) printhundreds(num); cout << "\n\n"; } }