Define a function drawRectangle with the following prototype: 

void drawRectangle(int width, int height, int offest); 
The function will print a rectangle made out of height rows with '@' character repeated width times on each row. The first @ on each row will be preceded by offset spaces. That means the whole rectangle will be offset from the left side of the command window.. For example a call to drawRectangle(3,5,6); will look produce this: 

          @@@
          @@@
          @@@
          @@@
          @@@

Your function should call drawRow() from the previous exercise. (You don't need to implement drawRow() here. It's provided by the driver.) 

Here is the previous exercise:

Define a function drawRow() with the following prototype: 

void drawRow(int numSpaces, int numChars);
The function will print numSpaces spaces, followed by the '@' character repeated numChars times. Lastly, a newline will be printed. 

For example, a call to drawRow(16,10); will print the following line of characters (ending with a newline): 
        @@@@@@@@@@

Notice there are 16 spaces, follwed by 10 @'s. 

Here is my solution for the drawRow() exercise:

void drawRow(int numSpaces, int numChars)
{
    for(; numSpaces > 0; numSpaces--)
    {
        cout << " ";
    }
    for(; numChars > 0; numChars--)
    {
        cout << "@";
    }
    cout << endl;
    return;
}

Here is my solution for the drawRectangle() exercise:

void drawRectangle(int width, int height, int offset)
{
    for (int i = 0; i < height; i++)
    {
        drawRow(offset,width);
    }
    cout << endl;
}
This article has been dead for over six months. Start a new discussion instead.