Напишите программу, которая напечатает следующий ромб. Вы можете использовать операторы вывода, которые печатают или одну звездочку (), или один пробел. Максимально используйте повторение (с вложенными структурами for) и минимизируйте число операторов вывода.1) В общем, я нашел решение этой задачи, только вот не понимаю формулу, если кто может, объясните.2) У меня у самого была идея написать ромб через присвоение переменной символ "" и символ "_". Затем он бы печатал первую строку 4 пробела, одну звезду и так далее. Но загвоздка в том, что при цикле char='k' не умножается на число, т.е. k4 это не 4 пробела. Объясните можно ли таким способом решить эту задачу.Вот сам код задачи:#include <iostream>using namespace std; int main(){ int i, j, N = 9; int center = N / 2; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { if (i <= center) { // Верхняя половина ромба if (j >= center - i && j <= center + i) cout << ""; else cout << " "; } else { // Нижняя половина ромба if (j >= center + i - N + 1 && j <= center - i + N - 1) cout << "*"; else cout << " "; } } cout << endl; } system("PAUSE"); return 0;}
Bump
Ромб заполненный внутри или пустой?
>>853239Заполненный внутри звездочками
>Но загвоздка в том, что при цикле char='k' не умножается на число, т.е. k4 это не 4 пробела. Объясните можно ли таким способом решить эту задачу.С чего ты взял, что умножая символ, получишь большее количество символов?Делай так:цикл_строк{цикл_левых_пробелов;цикл_звезд;цикл_правых_пробелов;}
>>853242Не знаю, просто предположил. Но не получилось, это вообще возможно?
>>853242Зачем вообще нужны правые пробелы?
>>853243Нет, символ представлен кодом символа (числом по сути), который потом интерпретируется выводом как какой-то литер. Умножая символ, ты получаешь просто код символа, который будет просто другим символом (скорее всего даже вылетит за границы таблицы символов). Нужно просто несколько раз подряд вывести этот символ, чтобы их количество увеличить.Кстати, у тебя тут>и минимизируйте число операторов выводаПробуй писать сначала все свои символы в строку, а потом её за один cout покажешь (используй '\n').>>853244И правда, лол, нахуй их. ну или на случай если фон нужно отдельной заливкой пилить