[Ответить в тред] Ответить в тред

Тред закрыт.


09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!
30/09/16 - BREAKING NEWS ШОК АБУ ПРОДАЛСЯ МЭЙЛУ (на самом деле нет)
25/09/16 - Персональное обращение Абу - СБОР ПОЖЕРТВОВАНИЙ НА ДВАЧ



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 7 | 1 | 3
Назад Вниз Каталог Обновить

Напишите программу, которая напечатает следующий Аноним 09/10/16 Вск 11:13:23  853226   Обсуждение закрыто  
14760008040000.jpg (1135Кб, 3008x2127)
Напишите программу, которая напечатает следующий ромб. Вы можете использовать операторы вывода, которые печатают или одну звездочку (), или один пробел. Максимально используйте повторение (с вложенными структурами 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;
}
Аноним 09/10/16 Вск 11:18:21  853228
Bump
Аноним 09/10/16 Вск 11:35:48  853239
Ромб заполненный внутри или пустой?
Аноним 09/10/16 Вск 11:36:56  853241
>>853239
Заполненный внутри звездочками
Аноним 09/10/16 Вск 11:37:26  853242
>Но загвоздка в том, что при цикле char='k' не умножается на число, т.е. k4 это не 4 пробела. Объясните можно ли таким способом решить эту задачу.
С чего ты взял, что умножая символ, получишь большее количество символов?
Делай так:
цикл_строк
{
цикл_левых_пробелов;
цикл_звезд;
цикл_правых_пробелов;
}
Аноним 09/10/16 Вск 11:38:36  853243
>>853242
Не знаю, просто предположил. Но не получилось, это вообще возможно?
Аноним 09/10/16 Вск 11:41:55  853244
>>853242
Зачем вообще нужны правые пробелы?
Аноним 09/10/16 Вск 11:44:52  853245
>>853243
Нет, символ представлен кодом символа (числом по сути), который потом интерпретируется выводом как какой-то литер. Умножая символ, ты получаешь просто код символа, который будет просто другим символом (скорее всего даже вылетит за границы таблицы символов). Нужно просто несколько раз подряд вывести этот символ, чтобы их количество увеличить.

Кстати, у тебя тут
>и минимизируйте число операторов вывода
Пробуй писать сначала все свои символы в строку, а потом её за один cout покажешь (используй '\n').
>>853244
И правда, лол, нахуй их. ну или на случай если фон нужно отдельной заливкой пилить

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 7 | 1 | 3
Назад Вверх Каталог Обновить

Топ тредов
Избранное