Фигура из символов
Недавно начал изучать С++, и мой код хромает. Нужно вывести следующее:
Каким образом можно укоротить мой код(уверен, что можно)?
#include <iostream>
#include <string>
using namespace std;
int main() {
setlocale(LC_ALL, "ru");
string simvol = "*";
int control = 7;
for (int j = 0; j < control; j++) {
cout << simvol << " ";
}
cout << endl;
for (int j = 0; j < control; j++) {
if ((j == 0) || (j == control - 1)) {
cout << " ";
}
else {
cout << simvol << " ";
}
}
cout << endl;
for (int j = 0; j < control; j++) {
if ((j == 0) || (j == 1) || (j == control - 1) || (j == control - 2)) {
cout << " ";
}
else {
cout << simvol << " ";
}
}
cout << endl;
for (int j = 0; j < control; j++) {
if ((j == 0) || (j == 1) || (j == 2) || (j == control - 1) || (j == control - 2) || (j == control - 3)) {
cout << " ";
}
else {
cout << simvol << " ";
}
}
cout << endl;
for (int j = 0; j < control; j++) {
if ((j == 0) || (j == 1) || (j == control - 1) || (j == control - 2)) {
cout << " ";
}
else {
cout << simvol << " ";
}
}
cout << endl;
for (int j = 0; j < control; j++) {
if ((j == 0) || (j == control - 1)) {
cout << " ";
}
else {
cout << simvol << " ";
}
}
cout << endl;
for (int j = 0; j < control; j++) {
cout << simvol << " ";
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Так годится?
int main()
{
int N = 7;
for(int i = 0; i < N; ++i)
{
for(int j = 0; j < N; ++j)
cout << (((j >= i && j < N-i) || (j <= i && j >= N-i-1)) ? "* " : " ");
cout << "\n";
}
}
P.S. Ну, или если ровно для 7 —
int main()
{
cout << "* * * * * * *\n * * * * *\n * * *\n"
" *\n * * *\n * * * * *\n* * * * * * *\n";
}
:)
