[C++] Prosta choinka - w pętli while


(bolok) #1

Cześć, napisałem sobie program wyświetlający "połowe" choinki w konsoli za pomocą pętli for. Program działa, ale jak próbuje przepisać swój kod do pętli while to już nie działa.

Co jest nie tak?

#include 

using namespace std;


int main()

{

int wysokosc;

char znak;

znak='*';

cout<<"Podaj wysokosc"<
cin>>wysokosc;

int i=1;

int j=1;

while(i<=wysokosc)

     {

          while(j<=i)

     	  {		  				  

	          cout<
		   	  j++;

  	  	  }


cout<<"\n"; 

i++;

}

system("pause");

return 0;

}

Wyświetla się tylko coś takiego:

Podaj wysokosc: np.5

rezultat:

*

*

*

*

*


(MaXDemage) #2

Ahhh, no tak październik ;D można było się spodziewać wysypu choinek.

Pomyśl nad zerowaniem (tudzież "jedynkowaniem") zmiennej j po zakończeniu wypisywania wiersza;


(Martini M) #3

Witam,

Mały błąd. Przed rozpoczęciem drugiej pętli while zeruj (w Twoim przypadku startuj za każdym razem od j=1).

To taka uwaga po szybkim debugowaniu "na oko".

W pętli for miałeś tak, że samo za każdym razem startowało od wartości początkowej (podejrzewam, że od 1).

Taka dobra drobna podpowiedź programistyczna na przyszłość: lepiej pętle pisać od 0 do wartości oczekiwanej, ale ostre porównanie, np. tak:

int i;

for(i=0;i<10;i++) //wykona się 10 raz

for(i=1;i<=10;i++)//tez wykona się 10 razy, ale poprzednia konstrukcja jest lepsza przy pracy z tablicami i wektorami.

Powodzenia, pozdrawiam


(bolok) #4

Dzięki wielkie, po dopisaniu j=1, wszystko śmiga. A i dziękuje za podpowiedź ws pętli. Narazie raczej rzadko korzystam z tablic (nie mówiąc już o wektorach), ale kiedyś napewno się to przyda.

Pozdro