Сделать треугольник циклом [требует правки]

230
03 января 2018, 19:47
      *****    
    *******      
  *********        
***********                 
***********           
 **********         
    *******      
      *****  

Мне нужно сделать такой треугольник циклом, все перепробовал, не получилось.

Answer 1

Ладно, в честь Нового года:

int main()
{
    for(int i = 0; i < 8; ++i)
    {
        cout
            << string(abs(2*i-7)-1,' ')
            << string(12-abs(2*i-7),'*')
            << endl;
    }
}

Ну нате с помощью шести циклов for - так лучше?

for(int i = 0; i < 4; ++i)
{
    for(int j = 0; j < 6 - 2*i; ++j) cout << ' ';
    for(int j = 0; j < 5 + 2*i; ++j) cout << '*';
    cout << '\n';
}
for(int i = 0; i < 4; ++i)
{
    for(int j = 0; j < 2*i     ; ++j) cout << ' ';
    for(int j = 0; j < 11 - 2*i; ++j) cout << '*';
    cout << '\n';
}

Специально для @AnT:

int main(int argc, const char * argv[])
{
    char * str[] = {
        "      ***** ",
        "    *******       ",
        "  *********         ",
        "***********                  ",
        "***********            ",
        " **********          ",
        "    *******       ",
        "      *****  " };
    for(int i = 0; i < sizeof(str)/sizeof(str[0]); ++i)
    {
        cout << str[i]<<endl;
    }
}

Пробелы после звездочек из условия я тоже перекопировал - теперь вас устраивает?

Answer 2

думаю так будет понятно

#include <iostream>
int main()
{   
    int n  = 0;            // количество '*' в строке
    const int m  = 7;      // максимальное количество пробелов в строке
    const int count = 11;  // размер строки
    std::string s1(count, ' '), s = s1; 
    for (size_t i = 0; i <= m; ++i) {
        n = count + 1 - abs(2 * i - m); // n принимает  значения 5, 7, 9, 11, 11, 9, 7, 5
        std::fill(s.rbegin(), s.rbegin() + n, '*');
        std::cout << s <<'\n';
        s = s1;
    }
    return 0;
}

С НОВЫМ ГОДОМ!

READ ALSO
Как загружается в память .XML Файл DOM C++?

Как загружается в память .XML Файл DOM C++?

Хотелось бы узнать на Примере от - Microsoft

242
Два исключения - это много?

Два исключения - это много?

Вычитал у Майерса, то что два исключения в деструкторе - это слишком многоЧто он этим хотел сказать? Одно исключение - это не много, а вот два...

266
Запуск игрового сервера с++

Запуск игрового сервера с++

Здравствуйте! Я на php написал скрипт управлением игровым сервером

336
Функция int main(void) уже имеет текст реализации. Код ошибки

Функция int main(void) уже имеет текст реализации. Код ошибки

Делаю одну программу для эксперимента и возникла одна ошибкаСделал новый проект и оставил ту же функцию и те же свойства, а ошибка так и осталась,...

1205