#include #include #include #include std::string writeanumber(int); std::string ten_teen(int); std::string multiple_ten(int); int main() { try { int number(0); int count(0); std::string tens; std::string singles; std::string teens; const int end(999); std::cout << "Input a number between -100 and 100: \n"; std::cin >> number; if (not std::cin.good()) { std::cout << "You must input a interger!\n"; throw std::exception(); } if (number > 100 && number != end) { std::cout << "Out of range number!\n"; throw std::exception(); } if (number < 0) { std::cout << "minus "; for (int i=number; i != 0; ++i) { ++count; } number = count; } if ( number < 10) { singles = writeanumber(number); std::cout << singles << '\n'; } if (number >= 10 or number <= 19) { teens = ten_teen(number); std::cout << teens << '\n'; } if (number >= 20) { if (number < 100) { int remainder = number % 10; number -= remainder; tens = multiple_ten(number); singles = writeanumber(remainder); std::cout << tens << " " << singles << '\n'; } } } } catch (...) { std::cerr << "***An exception was thrown***\n"; } } std::string writeanumber(int num) { std::string value; switch (num) { case 1: value = "one"; break; case 2: value = "two"; break; case 3: value = "three"; break; case 4: value = "four"; break; case 5: value = "five"; break; case 6: value = "six"; break; case 7: value = "seven"; break; case 8: value = "eight"; break; case 9: value = "nine"; break; } return value; } std::string ten_teen(int num) { std::string value; switch (num) { case 10: value = "ten"; break; case 11: value = "eleven"; break; case 12: value = "twelve"; break; case 13: value = "thirteen"; break; case 14: value = "fourteen"; break; case 15: value = "fifteen"; break; case 16: value = "sixteen"; break; case 17: value = "seventeen"; break; case 18: value = "eighteen"; break; case 19: value = "nineteen"; break; } return value; } std::string multiple_ten(int num) { std::string value; switch (num) { case 20: value = "twenty"; break; case 30: value = "thirty"; break; case 40: value = "forty"; break; case 50: value = "fifty"; break; case 60: value = "sixty"; break; case 70: value = "seventy"; break; case 80: value = "eighty"; break; case 90: value = "ninety"; break; } return value; }