# Answer to Question #61603 in C++ for Daniel Greef

Question #61603

Hi, could you make me a program that when I input any number from 0-1,000,000 it will print the word value using if and else statements or switch/case statements. arrays and strings would be possible too.

e.g. input 4, output four. Comment lines would also be appreciated, thanks!

e.g. input 4, output four. Comment lines would also be appreciated, thanks!

Expert's answer

Condition: Hi, could you make me a program that when I input any number from 0-1,000,000 it will print the word value using if and else statements or switch/case statements. arrays and strings would be possible too. e.g. input 4, output four. Comment lines would also be appreciated, thanks!

Solution (In C++):

#include <iostream>

#include <string>

using namespace std;

//An array of the first 14 numbers and zero

const string first14 [15] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen" };

//An array of prefixes

const string prefixes [8] = { "twen", "thir", "for", "fif", "six", "seven", "eigh", "nine" };

//Converter function

string IntToStr(const unsigned int number)

{

if (number <= 14)

return first14[number];

if (number < 20)

return prefixes[number-12] + "teen";

if (number < 100) {

unsigned int remainder = number - ((int)(number / 10) * 10);

return prefixes[number / 10 - 2] + (0 != remainder ? "ty " + IntToStr(remainder) : "ty");

/* The same code as:

if (0!=remainder) { return prefixes[number / 10 - 2] + "ty " + IntToStr(remainder); }

else { return prefixes[number / 10 - 2]+"ty"; }

but i use a short version of the operator (if/else), Which looks like: (Condition) ? true : false;

*/

}

if (number < 1000) {

unsigned int remainder = number - (int)((number / 100) * 100);

return first14[number / 100] + (0 != remainder ? " hundred " + IntToStr(remainder) : " hundred");

}

if (number < 1000000) {

unsigned int thousands = (int)(number / 1000);

unsigned int remainder = number - (thousands * 1000);

return IntToStr(thousands) + (0 != remainder ? " thousand " + IntToStr(remainder) : " thousand");

}

if (number == 1000000) return "one million";

if (number > 1000000) return "Out of range";

}

int main()

{

int num;

cout << "Enter the number from 0-1000000: ";

cin >> num;

cout << "Word value: " << IntToStr(num) << std::endl;

cin.get();

cin.get();

return 0;

}

Examples of the work program

Solution (In C++):

#include <iostream>

#include <string>

using namespace std;

//An array of the first 14 numbers and zero

const string first14 [15] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen" };

//An array of prefixes

const string prefixes [8] = { "twen", "thir", "for", "fif", "six", "seven", "eigh", "nine" };

//Converter function

string IntToStr(const unsigned int number)

{

if (number <= 14)

return first14[number];

if (number < 20)

return prefixes[number-12] + "teen";

if (number < 100) {

unsigned int remainder = number - ((int)(number / 10) * 10);

return prefixes[number / 10 - 2] + (0 != remainder ? "ty " + IntToStr(remainder) : "ty");

/* The same code as:

if (0!=remainder) { return prefixes[number / 10 - 2] + "ty " + IntToStr(remainder); }

else { return prefixes[number / 10 - 2]+"ty"; }

but i use a short version of the operator (if/else), Which looks like: (Condition) ? true : false;

*/

}

if (number < 1000) {

unsigned int remainder = number - (int)((number / 100) * 100);

return first14[number / 100] + (0 != remainder ? " hundred " + IntToStr(remainder) : " hundred");

}

if (number < 1000000) {

unsigned int thousands = (int)(number / 1000);

unsigned int remainder = number - (thousands * 1000);

return IntToStr(thousands) + (0 != remainder ? " thousand " + IntToStr(remainder) : " thousand");

}

if (number == 1000000) return "one million";

if (number > 1000000) return "Out of range";

}

int main()

{

int num;

cout << "Enter the number from 0-1000000: ";

cin >> num;

cout << "Word value: " << IntToStr(num) << std::endl;

cin.get();

cin.get();

return 0;

}

Examples of the work program

Need a fast expert's response?

Submit orderand get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

## Comments

## Leave a comment