Помогите решить задачу

Всем, здравствуйте! Я начал с нуля изучать С++, до этого, программирование никак не касалось меня в этой жизни. Подскажите со следующей задачей, кому нетрудно.
Напишите программу, которая читает размер стороны квадрата и затем печатает звездочками и пробелами пустой квадрат заданного размера. Ваша программа должна работать для любых размеров, заданных в интервале 1—20. Приложенное решение

#include <iostream>

using namespace std;
int main()
{
   int side;
   cout << "Vvedite storonu kvadrata (1 - 20): ";
   cin >> side;
   for (int i = 1; i <= side; i++)
   {
      for (int j = 1; j <= side; j++)
      {
         if (i == 1 || i == side)
            cout << '*';
         else
         {
            if (j == 1 || j == side)
               cout << '*';
            else
               cout << ' ';
         }
      }
      cout << endl;
   }
   return 0;
}

Вопрос следующий — как я понял, цикл с переменной i отвечает за то, что звездочка печатается вниз в каждой строке пока не соблюдется условие цикла i <= side, а цикл с переменной j отвечает за то, что звездочка печатается в строке влево. Вот я не понимаю, как программа определяет, что j это печать именно в строке, а не тоже вниз, как столбик, например. Спасибо.

В конце программы есть строка cout << endl; она переносит курсор на строку вниз.
Алгоритм следующий. Два цикла — внешний (цикл i) и вложенный в него (цикл j).
i присваивается значение 1, и запускается вложенный цикл, который печатает звездочки и пробелы, отсчитывая j++ c каждым напечатанным символом. Когда j достигнет максимума (j <= side), вложенный цикл закончит выполнятся и курсор перенесется на следующую строку (cout << endl;).
Теперь происходит i++, i становится равной 2 (что соответствует курсору на 2-ой строке) И опять с самого начала запускается вложенный цикл, который печатает символы 2-й строки, вновь отсчитывая j от 1 до side. В конце курсор опять переносится уже на третью строку, снова i++, и опять запускается вложенный цикл.
И так до тех пор пока i тоже не дойдет до side.

#include <iostream>

using namespace std;
int main()
{
    int side;
    cout << "Vvedite storonu kvadrata(1 — 20) : ";
    cin >> side;

    for (int i = 1; i <= side; i++) // цикл отсчитывающий количество строк
    {
        for (int j = 1; j <= side; j++) // цикл отсчитывающий количество символов в строке
        {
            if (i == 1 || i == side) // если это первая или последняя строка, печатаем '*'
                cout << '*';
            else // если предыдущее условие не выполнилось, то...
            {
                if (j == 1 || j == side) // если это первый или последний знак в строке, печатаем '*'
                    cout << '*';
                else // во всех остальных случаях печатаем пробел
                    cout << ' ';
            }
        }   // j++
        cout << endl; // когда j достигнет максимума, переносим курсор на следующую строку
    }   // i++

    return 0;
}

Очень большое спасибо! ) Прям все разжевано и в рот положено. Я немного неправильно алгоритм понимал оказывается, теперь все понятно.

После ввода произвольного числа, консоль сразу закрывается. Подскажите в чем причина?
microsoft visual studio express 2013

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    setlocale(0, "");
    double num;
    cout << "Введите произвольное число: ";
    cin >> num;

    if (num < 10)
        cout << "Это число меньше 10." << endl;
    else if (num == 10)
        cout << "Это число равно 10." << endl;
    else
        cout << "Это число больше 10." << endl;

    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.