Trójkąt prostokątny z gwiazdek

0

Witam,
Jak narysować trójkąt prostokątny z gwiazdek tak żeby był narysowany w lewą stronę?
Z góry dzięki za pomoc :)

1

Rysuj przed gwiazdkami malejącą ilość spacji.
Np. w pierwszym wierszu 10 spacji i 1 gwiazdka, w drugim 9 spacji i dwie gwiazdki...

3

Możesz użyć funkcji formatujących biblioteki standardowej, czy to std::setw czy printf.

	for(int i = 1; i <= 10; i++){
		cout << setw(10) << setfill(' ') << string(i, '*') << endl;
	}

http://melpon.org/wandbox/permlink/6lOUhMGOftgy1hUj

0

Nie mogę wymyślić jak mam robić te spacje. Próbuje coś takiego ale nie bardzo o to chodzi

 
#include <iostream>

using namespace std;

int main()
{
    int a;
    cin>>a;
    for(int k=a; k>=0; k--)
    {
        cout<<" ";
    }

    for(int j=0; j<=a; j++)
    {
        for(int i=0; i<=j; i++)
            cout<<"*";

        cout<<endl;
    }

    return 0;
}


0

Jeśli chcesz robić to ręcznie, to spacje musisz robić przed każdą linijką, a nie przed całym trójkątem.

0

jak mam to zrobić żeby mi przesuwało każdą linię a nie tylko pierwszą?

 
#include <iostream>

using namespace std;

int main()
{
    int a;
    cin>>a;
    for(int k=a; k>=0; k--)
    {
        for(int j=0; j<=a; j++)
        {
            for(int i=0; i<=j; i++)
            {
                cout<<"*";
            }
            cout<<endl;
        }
        cout<<" ";
    }
    return 0;
}


1

Każdą linię musisz "przesunąć" o odpowiednią ilość znaków, masz pseudokod:

FOR KAŻDA_LINIA
  ILOŚĆ_GWIAZDEK = I
  WYPISZ (N-I) SPACJI
  WYPISZ (I) GWIAZDEK
0

Tak zrób:

#include <iostream>
using namespace std;

int main() {
	for(int i=5;i>=0;i--){
		for(int j=i;j>=0;j--)
			cout << " ";
		for(int j=i;j<5;j++)
			cout << "*";
		cout << "\n";
	}
	return 0;
}

https://ideone.com/Ao8Hr2

1 użytkowników online, w tym zalogowanych: 0, gości: 1