C++ is new to me and I'm trying solve this problem but get stuck. Please help me out. Below is the task and after that is what i got so far.
I thought algorithm for this would be.
* Top Lines of inside squares would be 1-8 , 1-3 - 6-8 (Don't count first and last lines of largest square)
* Bottom Lines of inside squares would be 2-7, 2-4 5-7 (Don't count first and last lines of largest square)
Here is what I got so far. Please help me with some ideas to develop
Code:
Create a program to print nested squares Input: Accept the width of the largest square Output: A series of nested squares with 1 space between them Sample: > eca4.exe 10 ********** * * * ****** * * * * * * * ** * * * * ** * * * * * * * ****** * * * **********
* Top Lines of inside squares would be 1-8 , 1-3 - 6-8 (Don't count first and last lines of largest square)
* Bottom Lines of inside squares would be 2-7, 2-4 5-7 (Don't count first and last lines of largest square)
Here is what I got so far. Please help me with some ideas to develop
Code:
#include <iostream> //Required if your program does any I/O #include <string> //Required if your program uses C++ strings using namespace std; //Required for ANSI C++ 1998 standard. void drawRectangle(int w, char symbol) { for ( int i = 0; i < w; i++) //How many Lines we need to draw? { if(i == 0 || i == (w - 1)) //Is it the first line or the last line? { for(int cFnL = 0; cFnL < w; cFnL++) //Print out full char for the first and the last line { cout << symbol; } cout << endl; } else //Draw middle lines { if(i % 2 == 0 && i < (w/2)) { for(int cFnL = 0; cFnL < w; cFnL++) // Top half of top side of inside squares { cout << "-"; } cout << endl; } else if(i % 2 == 1 && i >= (w/2)) { for(int cFnL = 0; cFnL < w; cFnL++) //Bottom haft of bottom side of inside squares { cout << "-"; } cout << endl; } else { for(int cFnL = 0; cFnL < w; cFnL++) //Space lines between squares { cout << " "; } cout << endl; } } } } int main (int argc, char **argv) //Arguments to main are command line arguments { char reply; //A character variable to hold user input int iWidth; cout << "Enter integer the Width of the largest square: "; cin >> iWidth; cout << endl; drawRectangle(iWidth, '*'); //Call function to draw out cout << endl; // This section stops the program 'flashing' off the screen. cout << "Press q (or any other key) followed by 'Enter' to quit: "; cin >> reply; return 0; }
Comment