#include "library.h" void say(const int n); void testit() { print("number? "); const int x = read_int(); say(x); new_line(); testit(); } void main() { testit(); } const string names[] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "-", "fifteen", "-", "-", "eighteen", "-" }; const string tennames[] = { "-", "-", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninty" }; void say(const int n) // say is guaranteed to work perfectly for any parameter 0 to 999, no // matter how it is used, even if I put something stupid after the line XXXX { if (n>=0 && n<=19 && n!=14 && n!=16 && n!=17 && n!=19) print(names[n]); else if (n<20) { say(n-10); print("teen"); } else if (n<100) { const int tens = n/10, units = n%10; print(tennames[tens]); if (units != 0) { print("-"); say(units); } } else if (n<1000) { const int hundreds = n/100, rest = n%100; say(hundreds); print(" hundred"); if (rest != 0) { print(" and "); say(rest); } } // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx else { print("I don't know how to say "); print(n); new_line(); } }