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.
    }
}