Ocena programu wyświetlającego choinkę w ekranie konsoli

0

Witam, przed chwila napisalem program, ktory drukuje na ekran choinke (o ilosci pieter zadanej z klawiatury). Prosze o ocene tego programu oraz o podpowiedz co w nim zmienic, zeby kod byl czytelniejszy, a program lepszy. Z gory dziekuje.

#include <iostream>

using namespace std;

int main()
{
    int high;
    cout << "Podaj wysokosc choinki: " << endl;
    cin >> high;
    while(high<=1)
    {
        cout << "Wysokosc tej choinki ma byc wieksza od 1!!!" << endl << "Podaj wysokosc choinki: " << endl;
        cin >> high;
    }

    for(int numer_pietra=1, ilosc_pieter=high, ilosc_gwiazdek=1 ; numer_pietra<=high; numer_pietra++, ilosc_gwiazdek+=2, ilosc_pieter--)
    {
        for(int ilosc_spacji=ilosc_pieter-1; ilosc_spacji>0; ilosc_spacji--)
        {
            cout << " ";
        }
        for(int wypisz_gwiazdki=ilosc_gwiazdek; wypisz_gwiazdki>0; wypisz_gwiazdki--)
        {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}
0

To może sam odpowiedz na swoje pytanie:

#include <iostream>
using namespace std;
 
int main()
  {
   while(true)
     {
      unsigned high;
      cout<<"Podaj wysokosc choinki (0-koniec): ";
      if(cin>>high)
        {
         if(!high) return 0;
         for(int y=0;y<high;++y,cout<<endl) for(int x=-(int)high;x<y;++x) cout<<(y+1<-x?' ':'*');
        }
      else
        {
         cin.clear();
         cout<<"Trzeba podac liczbe."<<endl<<endl;
        }
      while(cin.get()!='\n') {}
     }
  }

Specjalnie dla ignorantów nietolerujących jednolinijkowych rozwiązań:

#include <iostream>
using namespace std;
 
int main()
  {
   while(true)
     {
      unsigned high;
      cout<<"Podaj wysokosc choinki (0-koniec): ";
      if(cin>>high)
        {
         if(!high) return 0;
         for(int y=0;y<high;++y)
           {
             for(int x=-(int)high;x<y;++x) cout<<(y+1<-x?' ':'*');
             cout<<endl;
           }
        }
      else
        {
         cin.clear();
         cout<<"Trzeba podac liczbe."<<endl<<endl;
        }
      while(cin.get()!='\n') {}
     }
  }

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