C ++. Приращение формы вложенного цикла

В настоящее время у меня трудное время для увеличения формы окна. Итак, вот картина:

Это проблема

Это мой код до сих пор:

#include <iostream>
using namespace std;

int box(int);

int main() {
int input;
cout << "Enter input: ";
cin >> input;
cout << endl;
box(input);

return 0;
}

int box(int input) {
if (input == 1 || input == 2 || input == 3) {
switch(input) {
case 1:
for (int a=1; a<=3; a++) {
cout << "*";
}
cout << endl;

for (int b=1; b<=1; b++) {
for (int c=1; c<=1; c++) {
cout << "*";
}
for(int d=1; d<=1; d++) {
cout << " ";
}
cout << "*" << endl;
}

for (int e=1; e<=3; e++) {
cout << "*";
}
break;
}
}
else {
cout << "Wrong input." << endl;
}

return input;

}

Я новичок в программировании на C ++. Я пытаюсь получить логику и код здесь. Но мне так трудно это сделать. Я пытаюсь ввести 1, и окно появится. Я хочу воссоздать код с одной функцией, чей ввод будет увеличивать поле.

0

Решение

Вы начали решать это слишком конкретно: начиная с одной коробки. Попробуйте посмотреть, что у них общего. принятие N в качестве входа,

  • Выход имеет 3, 5, 7 строк: 2 * N + 1
  • Первая строка особенная; у него есть "*", затем N раз " * *"
  • Другие строки входят N пары
  • Первая строка в паре, в основном пустая, имеет "*", а потом N раз " " (4 пробела) или " *" (3 пробела и звезда). За Iлиния, есть I из первых, и N - I из последних, с I переходя от 0 до N - 1,
  • Вторая строка в паре, та, которая имеет нижнюю часть коробки, также имеет "*"и затем либо " " (4 пробела) или " * *", с I + 1 из первых, и N - (I + 1) из последних.

Теперь вы можете нарисовать даже 4 или 5 блоков — все они следуют одним и тем же правилам.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector