Rysowanie piramidy -pomoc w kodzie

0

Czytam sobie o pętlach i próbuję narysować piramidę złożoną z gwiazdek o zadanej wysokości n.
Wykombinowałem coś takiego. Chcę zrobić to za pomocą 3 pętli for: jednej zewnętrznej odpowiedzialnej za wysokość piramidy i przejście do nowej linii i dwóch zagnieżdżonych. Pierwsza zagnieżdżona pętla odpowiadałaby za rysowanie pustych znaków , druga za gwiazdki. Rysując piramidę na kartce, zauważyłem (tak mi się przynajmniej wydaje) że gdy wysokość piramidy wynosi 2, program powinien rysować dwa znaki puste i jeden w drugim obiegu pętli. Z gwiazdkami odwrotnie. I na razie utknąłem.

Na próbę chciałem napisać instrukcję która wyświetlałaby poniższy wzór. Odpowiednik pustych pól przy n =2:

**
*


#include<iostream>
int main()
{ int liczba=0;
std::  cout<<"podaj wysokosc choinki"<<std::endl;
 std:: cin>>liczba;
 std:: cout<<std::endl;
   	for(int i=0;i<liczba;i++)
  	{	

        		for(int j =0;j<liczba;j++)
        		{		
                           std::cout<<"*";
                            }

   std:: cout<<endl;

   }
return 0;
}

I rysuje mi kwadrat 2*2
W tym miejscu chciałbym zapytać. Czy wartość zmiennej j po inkrementacji po pierwszym obiegu zostaje zapamiętana, czy liczenie j w drugim obiegu zaczyna się od nowa. Bo z programu wynika ze wykonywana jest druga możliwość.
Czy rozwiązanie z 3 pętlami jest akceptowalne teoretycznie ?
Z góry dziękuje za pomoc

0

Niestety nie widać, jaki miał być ten wzór.
Ale to poniższe robi to dla liczba=3:


*
**
***


using namespace std;

int main()
{

	int liczba = 0;
	std::cout << "podaj wysokosc choinki" << std::endl;
	std::cin >> liczba;
	std::cout << std::endl;
	for (int i = 0; i < liczba; i++)
	{

		for (int j = 0; j <= i; j++)
		{
			std::cout << "*";
		}

		std::cout << endl;

	}
	return 0;
}

0

Ale dziwny język programowania :P

#include <iostream>

using namespace std;

int main() {
  int liczba = 10;
  for(int i = 0; i < liczba; i += 1) {   
    for(int j = 0; j < i; j += 1) {
      std::cout << " ";
    }
    for(int j = 0; j < (liczba - i) * 2; j += 1) {
      std::cout << "*";
    }
    std::cout << endl;
   }
  return 0;
}
2

https://4programmers.net/Forum/C_i_C++/351746-nie_umiem_obrocic_trojkata_o_90_stopni_c?p=1764691#id1764691

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

int main()
{
	int hight=0;
	cout<<"podaj wysokosc choinki: ";
 	cin>>hight;
    for(int i=0;i<hight;++i) cout<<right<<setw(hight+i)<<string(1+(i<<1),'*')<<endl;
	return 0;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.