Обратное обучение после глупых жизненных проблем сошло с ума! Я решил сменить учебный материал, и теперь я работаю через Accelerated C ++.
Глава 2, Упражнение 5:
Напишите набор символов «*», чтобы они образовывали квадрат, прямоугольник и треугольник.
Я пытался, но точно не смог опустить треугольник. Быстрый гугл нашел следующий ответ:
// draw triangle
int row = 0;
int col = 0;
int height = 5;
// draw rows above base
while (row < height - 1)
{
col = 0;
while (col < height + row)
{
++col;
if (col == height - row)
cout << '*';
else
{
if (col == height + row)
cout << '*';
else
cout << ' ';
}
}
cout << endl;
++row;
}
// draw the base
col = 0;
while (col < height * 2 - 1)
{
cout << '*';
++col;
}
Я хотел разобраться в этом и полностью понять это, так как мне было трудно придумать собственный ответ. Не имеет значения, сколько раз я прохожу это, я не могу видеть, как это рисует правую сторону треугольника:
- - - - *
- - - *
- - *
- *
*
* * * * * * * * * *
Это то, что я прошёл через эту петлю на бумаге. Откуда же эта правая сторона? У меня есть чувство, что выражения делают то, чего я не вижу. Код работает.