Чтобы создать ромбовидный узор с помощью 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;
}