Создание ромбовидных узоров с использованием C++: методы и примеры

Чтобы создать ромбовидный узор с помощью C++, вы можете использовать различные методы. Вот несколько подходов:

Метод 1. Использование вложенных циклов

#include <iostream>
using namespace std;
int main() {
    int rows, i, j, space;
    cout << "Enter the number of rows: ";
    cin >> rows;

    space = rows - 1;

    for (j = 1; j <= rows; j++) {
        for (i = 1; i <= space; i++)
            cout << " ";

        space--;

        for (i = 1; i <= 2 * j - 1; i++)
            cout << "*";

        cout << endl;
    }

    space = 1;

    for (j = 1; j <= rows - 1; j++) {
        for (i = 1; i <= space; i++)
            cout << " ";

        space++;

        for (i = 1; i <= 2 * (rows - j) - 1; i++)
            cout << "*";

        cout << endl;
    }

    return 0;
}

Метод 2: использование одного цикла и условных операторов

#include <iostream>
using namespace std;
int main() {
    int rows, i, j, space;
    cout << "Enter the number of rows: ";
    cin >> rows;

    space = rows - 1;

    for (i = 1; i <= rows; i++) {
        for (j = 1; j <= space; j++)
            cout << " ";

        space--;

        for (j = 1; j <= 2 * i - 1; j++)
            cout << "*";

        cout << endl;
    }

    space = 1;

    for (i = 1; i <= rows - 1; i++) {
        for (j = 1; j <= space; j++)
            cout << " ";

        space++;

        for (j = 1; j <= 2 * (rows - i) - 1; j++)
            cout << "*";

        cout << endl;
    }

    return 0;
}

Метод 3. Использование комбинации циклов и арифметических вычислений

#include <iostream>
using namespace std;
int main() {
    int rows, i, j, space, k = 0;
    cout << "Enter the number of rows: ";
    cin >> rows;

    for (i = 1; i <= rows; ++i, k = 0) {
        for (space = 1; space <= rows - i; ++space) {
            cout << " ";
        }

        while (k != 2 * i - 1) {
            cout << "*";
            ++k;
        }

        cout << endl;
    }

    for (i = rows - 1; i >= 1; --i, k = 0) {
        for (space = 1; space <= rows - i; ++space) {
            cout << " ";
        }

        while (k != 2 * i - 1) {
            cout << "*";
            ++k;
        }

        cout << endl;
    }

    return 0;
}