Как сделать простую программу для вывода пирамиды из двух символов: один печатается дважды, а другой с использованием циклов в C ++? - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу:

*!!
**!!!!
***!!!!!!
// And so on.

Моя попытка ниже:

#include <iostream>
using namespace std;

int main()
{
    int a;
    int ex;
    for (a = 1; a <= 5; a++)
    {
        cout<<"*";
        for(ex =1; ex<= 2*a; ex++)
        {
            cout<<"!";
        }
        cout<<endl;
    }
    return 0;
}

Я получаю это в качестве вывода:

*!!
*!!!!
*!!!!!!
//and so on...

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

Ответы [ 4 ]

0 голосов
/ 12 декабря 2018

Другое решение:

#include <iostream>
using namespace std;

int main(){
    int times = 5;

    char simbol1 = '*', simbol2 = '!';

    for(int i=1 ; i<=times ; i++){
        for(int k=0; k<i; k++) cout << simbol1;
        for(int j=0; j<i*2; j++) cout << simbol2;
        cout << endl;
    }

    return 0;
}
0 голосов
/ 12 декабря 2018

Вам нужен еще один цикл для печати подсчитанных символов * внутри основного цикла.

#include <iostream>
using namespace std;

int main()
{
    int a;
    int ex;
    for (a = 1; a <= 5; a++)
    {
        for(int i = 0; i < a; ++i)
        {
            cout<<"*";
        }
        for(ex =1; ex<= 2*a; ex++)
        {
            cout<<"!";
        }
        cout<<endl;
    }
    return 0;
}
0 голосов
/ 12 декабря 2018

в вашем коде есть небольшая логическая ошибка, вы печатаете '*' один раз в каждом цикле.используйте код ниже

#include <iostream>
using namespace std;

int main()
{
    int a;
    int ex;
    for (a = 1; a <= 5; a++)
    {
        cout<<std::string((a),'*');
        cout<<std::string((a*2),'!');
        cout<<endl;
    }
    return 0;
}
0 голосов
/ 12 декабря 2018

Вы также должны иметь оператор cout << '*' в цикле:

int main()
{
    int a;
    int ex;
    for (a = 1; a <= 5; a++) // signifies the number of lines to print
    {
        auto i = 1;
        while (i <= a) // prints * a times
        {
            cout<<"*";
            ++i;
        }
        for(ex =1; ex<= 2*a; ex++) // prints ! 2*a times
        {
            cout<<"!";
        }
        cout<<endl;
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...