Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите сделать два восьмиугольника на языке C++

Leonid Kurach Ученик (115), закрыт 4 года назад
Первый восьмиугольник должен быть пустым, а второй заполненным буквами. Надо сделать через do while. Помогите пожалуйста буду очень благодарен.
Лучший ответ
del Мудрец (18972) 4 года назад
поля расстояний по координатам
Leonid KurachУченик (115) 4 года назад
Через кол-во пробелов
del Мудрец (18972) Не количество пробелов а координаты буквы. Номер строки и позиция символа. А еще лучше в относительных координатах от центра изображения.
Peer-2-PeerМудрец (16172) 4 года назад
Количество пробелов в начале первой строки? А нужно ли это?
Понятно, что в первой строке перед буквами 2 пробела, во второй — один.
leonid kurach Знаток (293) https://otvet.mail.ru/question/90032724 Вот по такому примеру нужно сделать
Остальные ответы
Sun Sunshine Мастер (1913) 4 года назад
нарисуй на бумаге в клеточку, что надо.
больше будет шансов, что напишут.
в таком виде - париться, высчитывать, где ставить пробелы, а где - буквы, вряд ли кто станет.
и что уже изучали, чтоб знать, на каком уровне должна быть прога, чтоб преподавателя инфаркт не настиг от твоего гениального решения.
leonid kurachЗнаток (293) 4 года назад
Изучали: функции, типы данных, do while. Тут надо реализовать так: вводишь елемент "а" и оно выдает тебе пустой восьмиугольник, а во втором вводишь "а, в, с" и выдает заполненный восьмиугольник. Только это сделать двумя разными кодами.
Peer-2-Peer Мудрец (16172) Манипуляторы ввода-вывода не изучали? Со строками работали?
leonid kurachЗнаток (293) 4 года назад
wwork ok Профи (537) 4 года назад
на мой нубский взгляд так, но наверняка можно оптимизировать.

ПУСТОЙ:

int side=8;//длина стороны, допустим 8
int space=2;//пробелы
int height=side+4;//высота
do
{ if(height>=side+2)//убывание пробелов в верхней части
space--;
else if(height<=2)//возрастание пробелов в нижней части
space++;
for(int fillRows=0;fillRows<side+3-space;++fillRows)//fillRows ряды
{ if(fillRows<=space||(fillRows>space+1&&fillRows<side+2-space&&space<1))//условие для пробелов
std::cout<<" ";
else
std::cout<<"*";//условие для звездочек
}
std::cout<<"\n";//ряд закончен
}
while(--height);

ПОЛНЫЙ

int side=8;
int space=2;
int height=side+4;
do
{ if(height>=side+2)
space--;
else if(height<=2)
space++;
for(int fillRows=0;fillRows<side+3-space;++fillRows)
{ if(fillRows<=space)
std::cout<<" ";
else
std::cout<<"*";}
std::cout<<"\n";}
while(--height);
Peer-2-PeerМудрец (16172) 4 года назад
Манипуляторы ж есть в библиотеке iomanip.
wwork ok Профи (537) Ну я ж говорю, я совсем нуб .
Батаев Дмитрий Просветленный (22267) 4 года назад
#include iostream

using namespace std;

int main (void)
{
setlocale(LC_ALL,"rus");

string line [7]={" aaa "," a a ","a a","a a","a a"," a a "," aaa "};

int a=0;
do
{
cout<<line[a]<<endl;
a++;
}while (a<7);

system("pause");
return 0;
}
Батаев ДмитрийПросветленный (22267) 4 года назад
#include iostream
#include locale

using namespace std;

int main (void)
{
setlocale(LC_ALL,"rus");

string line1 [7]={" aaa "," a a ","a a","a a","a a"," a a "," aaa "};
string line [7]={" aaa "," abbba ","abcccba","abcccba","abcccba"," abbba "," aaa "};

int a=0;
do
{
cout<<line1[a]<<"\t\t"<<line[a]<<endl;
a++;
}while (a<7);

system("pause");
return 0;
}
Похожие вопросы