[C++]Schodki z for i if

Witam.

Mam problem potrzebuję zrobić takie coś:

*

*

***

***

*****

*****

*******

*******

i nie wiem jak.

Mogą zostać wykorzystane tylko 2x for i 1x if.

Z góry dzięki

Inicjalnie tworzysz string z jedną gwiazdką

W forze, w inicjalizacji ustaw

int i = 1

warunek daj ile chcesz, krok co 1 w srodku robisz if’a którego warunek dajesz

i mod 3 == 0

jesli warunek zajdzie do stringa konkatenujesz dwie gwiazdki w p.p. wypisujesz stringa na stdout.

Kolego niestety nie zrozumiałem za dobrze twojego postu :frowning:

for(int i=1;i<=10;i++)

   {

   for(int j=1;j<=i;j++)

   {

   cout << "**";

   j+=1;

    }

    cout<
    }

mam tak i wyświetla się tak

**

**

****

****

******

******

a niestety musi zaczynac od 1 gwiazdki

W wewnętrznym forze daj if’a w którym jeśli j == 1 to wypisujesz jedną gwiazdkę, w p.p. dwie gwiazdki

A ja to widzę tak :slight_smile:

using namespace std;

int main(int argc, char* argv[])

{

        int i,j,k;

        for (i=1; i<=8; i++) {

                if (i%2==0) k=i-1; else k=i;

                for (j=1; j<=k; j++) {

                        cout << "*";

                }

                cout << endl;

        }

        getch();

        return 0;

}

Właściwie da się to zrobić dwoma forami bez if

#include 


int main()

{

        for(int i = 0; i < 8; ++i)

        {

                for(int j = 0; j < (i & ~1) + 1; ++j)

                        std::cout << '*';

                std::cout << std::endl;

        }

        return 0;

}

A jeśli użyjemy bufora, do którego będziemy dopisywali gwiazdki to wystarczy jeden for

#include 

#include 


int main()

{

        std::string buf = "*";

        static const char ast[] = "**"; 

        for(int i = 0; i < 8; ++i)

        {

                std::cout << buf << std::endl;

                buf += &ast[2 * !(i & 1)];

        }

        return 0;

}

Polecam dobry tutorial C++ http://xion.org.pl/productions/texts/coding/megatutorial/ oraz http://www.intercon.pl/~sektor/cbx/ :slight_smile:

for(int i=0;i<10;++i,cout<<'*'<

if’ w zasadzie jest tu nie potrzebny ale skoro musi być to:

[code]for(int i=0;i<10;++i,cout<<’*’<

Dzięki wielkie za pomoc.

Temat do zamknięcia