Thank you for the help again! you must be getting bored of looking over this problem. I have sorted this problem out and I am printing out the correct results. However I am having difficulty appending all of the three chunks together including there magnitude; for example my result if I put an input of 123456789 is giving me;
Seven Hundred and Eighty Nine
Four Hundred and Fifty Six
One Hundred and Twenty Three
below is what I have done with my code;
Code:
```#include <iostream> //including header files
#include <string>

using namespace std;

//string array declared
string units [10] = {"One","Two","Three", "Four", "Five", "Six","Seven","Eight", "Nine"};
string teens [10] = {"Ten", "Eleven", "Twelve", "Thirteen","Fourteen", "Fifteen", "Sixteen", "Seventeen","Eighteen", "Nineteen"};
string tens [10] = {"Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
//fcn defs
void printMillions(int unsigned i);
void printHundreds(int unsigned i);
void printThousands(int unsigned i);
void printTens(int unsigned i);
void printTeens(int unsigned i);
void printUnits(int unsigned i);

int main() //main body of fcn
{
int num; //declaring integers
int hundreds;
int thousands;
int millions;

cout << "Enter an a number between -2 million and 2 million " << endl; //prompts user for i/p and stores it
cin >> num;

if ((num < -200000000) || (num > 200000000)) //exits program if not within these limits
{
return 0;
}
else
{
hundreds = (num % 1000); //work out how many hundreds
printHundreds(hundreds);

thousands = (num/1000);
thousands = (thousands%1000); //work out how many thousdands
printThousands(thousands);

millions = (num/1000000); //work out how many millions
printMillions(millions);
}
cout << "Output 1: " << millions << "," << thousands << "," << hundreds << endl; //prints out result with comma

}

void printMillions (int unsigned i) //start of millions fcn
{
int unsigned t; //declares integer
t=i%100; //works out remainder
i=i/100; //works out value of i
cout << units[i-1] << " Hundred and "; //diplays hundred value
if (t>19&&t<100) // works out remainder value
printTens(t);
else if (i>9&&i<=19)
printTeens(t);
else if (t<10)
printUnits(t);
}

void printThousands(int unsigned i) //start of print thousands fcn
{
int unsigned t; //declares integer
t=i%100; //works out remainder
i=i/100; //works out i value
cout << units[i-1] << " Hundred and "; //prints out hundred value
if (t>19&&t<100) // if remainder within these limits calls function
printTens(t);
else if (i>9&&i<=19)
printTeens(t);
else if (t<10)
printUnits(t);
}

void printHundreds(int unsigned i) //start of print hundreds fcn
{
int unsigned t; //declares integer
t=i%100; //works out remainder
i=i/100; //works out i value
cout << units[i-1] << " Hundred and "; //prints out hundred value
if (t>19&&t<100) //if remainder within these limits calls function
printTens(t);
else if (i>9&&i<=19)
printTeens(t);
else if (t<10)
printUnits(t);
}

void printTens (int unsigned i) //start of fcn to print tens
{
int unsigned t; //declares integer
if (i>19&&i<100) //if i within limits statement executes
{
t=i%10; //works out remainder
i=i/10; //works out new i value
cout << tens[i-2] ; //prints result out whilst looking up table

if (t<10) //if remainder within these limits calls function
printUnits(t);
}
}

void printTeens (int unsigned i) //start of func to print teens
{
int unsigned t; //declares integer
if (i>9&&i<=19) //if i within these limits statement executes
{
t=i%10; //works out remainder
cout << teens[t-1] << endl; //prints out value whilst looking up table
}
}

void printUnits (int unsigned t) //start of fcn to print units
{
if (t<10) //if statement less than 11 executes
{
cout << " " << units[t-1] << endl; //prints out result whilst looking up table.
}
}```