Nested Loops

/* Write a program that prints the stars of the flag of the
United States of America on the screen:

* * * * * * 
 * * * * *
* * * * * *
 * * * * *
* * * * * *
 * * * * *
* * * * * *
 * * * * *
* * * * * *
The stars are arranged in 9 rows and 11 columns (another reason for the 911 date?).
Write a more versatile program so that the user can input any 2
positive odd numbers as the number of rows and columns,
You must take appropriate precautions to assure
the correctness of the input data.
The number of rows and columns must be positive and odd.

Do not use any kind of strings.
You can only print a character at a time.

A possible screen output is shown below:

You must enter two positive and odd numbers
to be the number of rows and columns: 4 7

You must enter two positive and odd numbers
to be the number of rows and columns: 9 11

* * * * * * 
 * * * * *
* * * * * *
 * * * * *
* * * * * *
 * * * * *
* * * * * *
 * * * * *
* * * * * *
*/

#include <iostream>
using namespace std;

int main ()
{
    int maxrows, maxcols;
    char ch = '*';

    do
    {
        cout << "You must enter two positive and odd numbers\n"
            << "to be the number of rows and columns: ";
        cin >> maxrows >> maxcols;
        cout << endl;
    } while ((maxrows < 0)||(maxcols < 0)||
                (maxrows%2 ==0) ||(maxcols%2 == 0));

    for (int row = 1; row <= maxrows; row++)
    {
        for(int col = 1; col <= maxcols; col++)
        {
            cout << ch;
            if (ch == '*')
                ch = ' ';
            else
                ch = '*';
        }
    cout << endl; // go to the next row
    }

    cout << endl;

    return 0;
}